C# 金钱的字符串格式问题

Kam*_*mal 2 c# string formatting

我需要将字符串转换为货币格式 {###}.###.###,##

那是

值为 5461497702600

会成为

54.614.977.026,00

数字变得非常大。

我在用

return string.Format("{0:#" + (val < 1000 ? "" : "\\.") + "##0.00}", val);
Run Code Online (Sandbox Code Playgroud)

该示例返回

54614977.026,00

(只有一个点)

任何帮助,将不胜感激

Hen*_*man 5

它比你想象的要简单,只需使用:

   decimal number = 5461497702600M;
   string s = string.Format("{0:#,##0.00}", number );
Run Code Online (Sandbox Code Playgroud)

在这里使用是必不可少的decimal。#,##0.00 图片是一种非常标准的方法,输出将使用系统默认符号,并且 fromatter 足够智能,可以根据需要重复 3 位数字分组。使用以下重载来指定区域性,此示例使用 InvariantCulture 将始终使用小数点:

 string s = string.Format(System.Globalization.CultureInfo.InvariantCulture, 
      "{0:#,##0.00}", number);
Run Code Online (Sandbox Code Playgroud)