打印数字,点在千之前,逗号在美分之前
本文关键字:数字 打印 | 更新日期: 2023-09-27 17:50:51
我有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
(点和逗号的顺序错误(。我能做什么?
您可以创建自己的NumberFormatInfo
并使用它来格式化数字:
var value = 50172.40M;
var numberFormat = new NumberFormatInfo();
numberFormat.CurrencyDecimalSeparator = ",";
numberFormat.CurrencyGroupSeparator = ".";
Console.WriteLine(value.ToString("N2", numberFormat));
这将写入50,172.40
.
但也许您应该使用CultureInfo.CurrentCulture
,因为这定义了用户喜欢如何格式化数字?如果未在 ToString
中指定任何 ,则此CultureInfo
是默认使用的 。
你正在使用这样的数字格式CultureInfo.InvariantCulture
。
你应该提供你自己的文化。您可以:
- 如果希望格式依赖于运行程序的操作系统中的区域性集,请使用
CultureInfo.CurrentCulture
或。 - 如果要确保始终按照自己的方式设置区域性,无论操作系统中设置的区域性如何,都可以自行设置区域性。例如
CultureInfo.GetCultureInfo("it-IT")
- 根据马丁的答案创建自己的
NUmberFormatInfo
。