如何将C#中分隔的美元和美分的十进制转换为字符串值?

Dom*_*mas 3 c# currency decimal tostring

我需要将十进制货币值显示为字符串,其中美元和美分与中间的文本分开.

123.45 => "123 Lt 45 ct"
Run Code Online (Sandbox Code Playgroud)

我提出了以下解决方案:

(value*100).ToString("#0 Lt 00 ct");
Run Code Online (Sandbox Code Playgroud)

但是,这种解决方案有两个缺点:

  1. 在向同事程序员展示这个解决方案后,它似乎不直观,需要一些解释.
  2. 总分显示为两位数.(对我来说不是真正的问题,因为目前这是我需要它显示的方式.)

有没有其他优雅而简单的解决方案?

Jen*_*ens 8

这是一个相当简单的操作.它应该以某种方式完成,让你的同事们立即理解.你的解决方案非常聪明,但这里不需要聪明.=)

使用像verbose这样的东西

double value = 123.45;
int dollars = (int)value;
int cents = (int)((value - dollars) * 100);
String result = String.Format("{0:#0} Lt {1:00} ct", dollars, cents);
Run Code Online (Sandbox Code Playgroud)