C# 如何在C语言中实现数字格式#
给定的数字是C# 如何在C语言中实现数字格式#,c#,number-formatting,C#,Number Formatting,给定的数字是282100。我想显示上面的数字,如282.100,00 我正在使用 String.Format("{0:n}", number) 但我得到的结果是这样的282100.00。 预期=282.100,00。 在C#中有什么方法可以做到这一点吗?您可以创建自己的数字格式,并使用它来获得所需的结果。大概是这样的: NumberFormatInfo customFormat = new NumberFormatInfo(); ; customFormat.NumberGroupSepara
282100
。我想显示上面的数字,如282.100,00
我正在使用
String.Format("{0:n}", number)
但我得到的结果是这样的282100.00
。
预期=282.100,00
。
在C#中有什么方法可以做到这一点吗?您可以创建自己的数字格式,并使用它来获得所需的结果。大概是这样的:
NumberFormatInfo customFormat = new NumberFormatInfo(); ;
customFormat.NumberGroupSeparator = ".";
customFormat.NumberDecimalSeparator = ",";
customFormat.NumberGroupSizes = new int[1]{3};
decimal someNumber = 123456789.123m;
string number = someNumber.ToString("N",customFormat);
如果您当前的区域性无法按照您想要的方式设置数字格式,您可以选择(至少):
- 使用已知的
,该数字的格式与您所需的格式相同CultureInfo
- 创建使用所需格式的自定义
NumberFormatInfo
CultureInfo
对象(即使用CultureInfo.GetCultureInfo()
),并将其用作格式化的IFormatProvider
)
如果出于某种原因,不总是清楚要获取哪个特定的CultureInfo对象,那么可以使用第二种方法。例如:
decimal number = 282100;
NumberFormatInfo numberFormatInfo =
(NumberFormatInfo)CultureInfo.CurrentCulture.NumberFormat.Clone();
numberFormatInfo.NumberDecimalSeparator = ",";
numberFormatInfo.NumberGroupSeparator = ".";
string text = string.Format(numberFormatInfo, "{0:n}", number);
此特定示例允许您从已知的格式化程序开始,然后根据您的特定需要对其进行修改
最后,如果您认为您当前的文化应该按照您想要的方式格式化数字,但它没有这样做,那么最好弄清楚它为什么没有这样做,而不是覆盖当前的文化。通常,您希望对显示给用户或从用户处收到的任何文本使用默认格式,以便无论文化背景如何,程序都能正常工作。您可以通过提供新的IFormatProvider来自定义格式:
var num = 282100;
// Output using a custom formatter:
Console.WriteLine(num.ToString("N",
new NumberFormatInfo{ NumberDecimalSeparator = ",", NumberGroupSeparator = "."}));
// Or if you want to save the formatted string:
var str = String.Format(new NumberFormatInfo {NumberDecimalSeparator = ",",
NumberGroupSeparator = "."}, "{0:N}", num);
Console.WriteLine(str);
听起来像是文化问题。你检查过你的程序使用的是什么文化吗?另一种处理它的方法是执行类似于
String.Format(“{0:#####,####,##,#数字”)的操作代码>虽然我确信有更好的方法可以做到这一点。使用使用使用所需分隔符的区域性,例如de de:String.Format(CultureInfo.CreateSpecificCulture(“de”),“{0:n}”,282100)
当前区域性en GB,该格式是挪威语。然后就是“nn NO”
或“nb NO”
。