我在DB
50172,40
和
500,00
在C#中我想将其打印为
50.172,40
和
500,00
所以在成千上万之前点数和逗号之前的逗号
我尝试了什么
public static string ToBankString(this decimal value)
{
return value.ToString("N2", CultureInfo.InvariantCulture);
}
但是我得到了
50,172.40
点和逗号的顺序错误。我该怎么办?
答案 0 :(得分:5)
您可以创建自己的NumberFormatInfo
并使用它来格式化数字:
var value = 50172.40M;
var numberFormat = new NumberFormatInfo();
numberFormat.CurrencyDecimalSeparator = ",";
numberFormat.CurrencyGroupSeparator = ".";
Console.WriteLine(value.ToString("N2", numberFormat));
这将写50,172.40
。
但也许您应该使用CultureInfo.CurrentCulture
,因为它定义了用户更喜欢格式化数字的方式?如果您未在CultureInfo
中指定任何内容,则会ToString
使用此{{1}}。
答案 1 :(得分:1)
您正在使用CultureInfo.InvariantCulture
来格式化这样的数字。
你应该提供自己的文化。你可以:
CultureInfo.CurrentCulture
或者您希望格式依赖于您的程序运行的操作系统中设置的文化。 CultureInfo.GetCultureInfo("it-IT")
NUmberFormatInfo
。