格式化货币

时间:2011-03-25 07:53:27

标签: c#

在下面的示例中,逗号是小数点分隔符。

我有这个:125456,89

我想要这个:125.456,89;其他例子:23456789,89 => 23.456.789,89

谢谢,

4 个答案:

答案 0 :(得分:2)

看看这个例子

double value = 12345.6789;
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture));

Console.WriteLine(value.ToString("C3", CultureInfo.CurrentCulture));

Console.WriteLine(value.ToString("C3", 

              CultureInfo.CreateSpecificCulture("da-DK")));

// The example displays the following output on a system whose
// current culture is English (United States):
//       $12,345.68
//       $12,345.679
//       kr 12.345,679

答案 1 :(得分:1)

通常要将数字格式化为货币,您应该使用" c"格式说明符:

string formatted = price.ToString("c");

这将使用当前线程的默认文化来确定格式规则,但如果需要,您可以明确指定它。

如果这没有帮助,请提供更多信息并阅读这两页:

编辑:从你的评论中,听起来你要么要指定一个显式的自定义数字格式字符串,构建你自己的NumberFormatInfo对象(只需在克隆现有属性后设置属性并将其传递给格式化调用即可。

答案 2 :(得分:1)

您可以使用:

125456.89.ToString("#,###.00")

它会自动为当前文化使用正确的小数点和组分隔符。它与目前为止的其他解决方案的不同之处在于它不会自动附加货币符号。

答案 3 :(得分:0)

引自another post

创建一个自定义的NumberFormatInfo实例,并在调用ToString()时传入该实例。

NumberFormatInfo nfi = new NumberFormatInfo();
nfi.NumberGroupSeparator = ".";
nfi.NumberDecimalSeparator = ",";

double s = 219171;
string result = s.ToString("N2", nfi);

NumberFormatInfo属于System.Globalization