我如何格式化:
double salary = 12345.6789
显示为:
12,345.68
使用String.Format()
或任何其他方法?
我试过了
String.Format(value.To String("C", CultureInfo.CurrentCulture)));
但这不是我想要的,我想将货币(这是.Net框架中不可用的本地货币符号)附加到字符串中以供显示。我只需要能够格式化值。
答案 0 :(得分:2)
您可以使用N
format specifier作为;
double salary = 12345.6789;
Console.WriteLine(salary.ToString("N2"));
结果将是;
12,345.68
此说明符默认使用CurrentCulture
的NumberGroupSeparator
和NumberDecimalSeparator
属性。如果,
中的这些属性不是.
和CurrentCulture
,则您可以InvariantCulture
向此.ToString()
方法提供第二个参数,例如;
double salary = 12345.6789;
Console.WriteLine(salary.ToString("N2", CultureInfo.InvariantCulture));
答案 1 :(得分:1)
将“N”传递给double.ToString()
:
var desiredString = salary.ToString("N");
答案 2 :(得分:1)
答案 3 :(得分:1)
试试这个:
String.Format("{0:0,0.0}", 12345.67); // "12,345.7"
String.Format("{0:0,0}", 12345.67); // "12,346"
更多示例here
答案 4 :(得分:1)
您可以使用N
standard format specifier,并指定两个小数位:
string formatted = salary.ToString("N2");
这将使用应用程序当前文化的小数分隔符和千位分隔符。如果要确保它始终使用句点作为小数分隔符并使用逗号作为千位分隔符,则可以指定不变文化:
string formatted = salary.ToString("N2", CultureInfo.InvariantCulture);