格式化货币

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

我有这个:125456,89

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

谢谢,

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

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

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

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

  • 标准数字格式字符串
  • 自定义数字格式字符串

编辑:从您的评论中,您可能想要指定一个显式的自定义数字格式字符串, 或者构建您自己的NumberFormatInfo对象(这只是在克隆现有对象后设置属性的问题)并将其传递给格式化调用。

看看这个例子

 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 

你可以用这个:

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

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

引自另一篇文章

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

 NumberFormatInfo nfi = new NumberFormatInfo(); nfi.NumberGroupSeparator = "."; nfi.NumberDecimalSeparator = ","; double s = 219171; string result = s.ToString("N2", nfi); 

NumberFormatInfo属于System.Globalization