格式化显示的双值

时间:2014-09-28 11:40:14

标签: c#

我如何格式化:

double salary = 12345.6789

显示为:

12,345.68

使用String.Format()或任何其他方法?

我试过了

String.Format(value.To String("C", CultureInfo.CurrentCulture)));

但这不是我想要的,我想将货币(这是.Net框架中不可用的本地货币符号)附加到字符串中以供显示。我只需要能够格式化值。

5 个答案:

答案 0 :(得分:2)

您可以使用N format specifier作为;

double salary = 12345.6789;
Console.WriteLine(salary.ToString("N2"));

结果将是;

12,345.68

此说明符默认使用CurrentCultureNumberGroupSeparatorNumberDecimalSeparator属性。如果,中的这些属性不是.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)

您希望将格式字符串传递给.ToString()方法。

salary.ToString("N");

查看here了解更多格式选项

答案 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);