我正在使用下一个代码来格式化双值:
String.Format("${0:0,0.#}",...);
效果很好,但是当数字小于10时,我遇到了问题。例如,数字显示为$ 03,$ 06。
请告诉我正确的字符串以下一格式ddd,ddd,ddd,ddd.dd
的双号答案 0 :(得分:7)
请改为尝试:
string result = string.Format("${0:#,##0.00}", d);
如果您的双重代表您应使用的货币:
string result = string.Format(CultureInfo.GetCultureInfo("en-US"), "{0:c}", d);
请注意,如果省略CultureInfo.InvariantCulture
它可能会在某些计算机上使用$
以外的内容显示。例如,在我的计算机上string.Format("{0:c}", d)
会提供2,00 kr
,这可能不是您想要的。
在您的示例中,您实际上根本不需要使用string.Format
。你可以改用它:
string s = d.ToString("c", CultureInfo.GetCultureInfo("en-US"));
除了更清晰,更简洁之外,它还具有避免拳击的优点。当然,如果你的格式字符串比你的例子更复杂,那么使用string.Format
是有意义的。
作为最后的评论,我建议不要使用双打来存储货币。十进制类型可能更合适。
答案 1 :(得分:5)
使用货币格式:
String.Format("{0:C}", money);
答案 2 :(得分:3)
String.Format("{0:C}", myDecimal);
或 myDecimal.ToString( “C”);
将显示两位小数,包括逗号分隔符并一举包含美元符号(基于文化设置)。如果您希望它转到1或小于2位小数,请在C后面加一个数字(即C3)
答案 3 :(得分:2)
Digits after decimal point
// just two decimal places
String.Format("{0:0.00}", 123.4567); // "123.46"
String.Format("{0:0.00}", 123.4); // "123.40"
String.Format("{0:0.00}", 123.0); // "123.00"
// max. two decimal places
String.Format("{0:0.##}", 123.4567); // "123.46"
String.Format("{0:0.##}", 123.4); // "123.4"
String.Format("{0:0.##}", 123.0); // "123"
// at least two digits before decimal point
String.Format("{0:00.0}", 123.4567); // "123.5"
String.Format("{0:00.0}", 23.4567); // "23.5"
String.Format("{0:00.0}", 3.4567); // "03.5"
String.Format("{0:00.0}", -3.4567); // "-03.5"
Thousands separator
String.Format("{0:0,0.0}", 12345.67); // "12,345.7"
String.Format("{0:0,0}", 12345.67); // "12,346"
Zero
Following code shows how can be formatted a zero (of double type).
String.Format("{0:0.0}", 0.0); // "0.0"
String.Format("{0:0.#}", 0.0); // "0"
String.Format("{0:#.0}", 0.0); // ".0"
String.Format("{0:#.#}", 0.0); // ""
Align numbers with spaces
String.Format("{0,10:0.0}", 123.4567); // " 123.5"
String.Format("{0,-10:0.0}", 123.4567); // "123.5 "
String.Format("{0,10:0.0}", -123.4567); // " -123.5"
String.Format("{0,-10:0.0}", -123.4567); // "-123.5 "
Custom formatting for negative numbers and zero
String.Format("{0:0.00;minus 0.00;zero}", 123.4567); // "123.46"
String.Format("{0:0.00;minus 0.00;zero}", -123.4567); // "minus 123.46"
String.Format("{0:0.00;minus 0.00;zero}", 0.0); // "zero"
Some funny examples
String.Format("{0:my number is 0.0}", 12.3); // "my number is 12.3"
String.Format("{0:0aaa.bbb0}", 12.3); // "12aaa.bbb3"
答案 4 :(得分:0)
String.Format("${0:#,0.#}",...);
应该这样做。
见Custom Numeric Format Strings