C#字符串。格式为1000,00到1.000,00
如何将数字更改为以下内容:C#字符串。格式为1000,00到1.000,00,c#,string,string.format,C#,String,String.format,如何将数字更改为以下内容: 1000应该变成1.000,00,当我有700时,它必须是700,00 当我尝试string.Format(“{0:0000.00}”,Number)时,700变成0.700,00,所以它不好。试试这个string.Format({0:n}),1000)你需要它 string.Format("{0:#,##0.00}", Number) 您需要将lead占位符指定为#而不是零,这使得它是可选的 但是,与其用“蛮力”来设置数字格式,不如找出您想要的区域性格式,并为st
1000
应该变成1.000,00
,当我有700
时,它必须是700,00
当我尝试
string.Format(“{0:0000.00}”,Number)
时,700
变成0.700,00
,所以它不好。试试这个string.Format({0:n}),1000)
你需要它
string.Format("{0:#,##0.00}", Number)
您需要将lead占位符指定为#而不是零,这使得它是可选的
但是,与其用“蛮力”来设置数字格式,不如找出您想要的区域性格式,并为string.format提供正确的CultureInfo
String.Format
用于按如下方式提供格式化区域性:
var culture = CultureInfo.GetCultureInfo("fr-FR");
var formattedNumber = string.Format(culture , "{0:n}", Number);
(我选择使用法语纯粹作为说明,因为它似乎符合您示例中的要求)
如果您希望使用特定格式,则不应使用{0:n}
,而不指定区域性,因为这完全取决于用户/系统的区域性设置。请尝试String.format(“#,0.##”)
。这对我很有用。输入:800
产量:800,00 输入:1400
产量:1.400,00
我使用德国文化作为数字格式。可能需要根据区域性进行指定。使用格式字符串格式化数字时,
是用于格式化的区域性的小数分隔符的占位符。,
类似地用作千位分隔符
string.Format(CultureInfo.GetCultureInfo("de-DE"), "{0:n}", 1000)
您需要在正确的位置使用它们,并使用一个区域性,该区域性使用,
作为十进制分隔符,使用
作为千位分隔符
string.Format(CultureInfo.GetCultureInfo("de-DE"), "{0:n}", 1000)
产生1.000,00
string.Format(CultureInfo.GetCultureInfo("en-GB"), "{0:n}", 1000)
生成
1000.00
在中提供适当的文化信息
,以指定小数分隔符和千位分隔符
string.Format(CultureInfo.GetCultureInfo("en-GB"), "{0:n}", 1000)
最好的方法是在应用程序级别定义它以实现一致性
Winforms:
在program.cs中
System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator = ",";
System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberGroupSeparator = ".";
ASP.NET
定义一个基本页,然后执行以下操作:
protected override void InitializeCulture()
{
base.InitializeCulture();
System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator = ",";
System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberGroupSeparator = ".";
}
您是否尝试过根据需要设置数字格式
NumberFormatInfo num = new NumberFormatInfo();
num.NumberDecimalSeparator = ",";
num.NumberGroupSeparator = ".";
string samp = 70000.00.ToString("N2",num); // prints 70.000,00
这将有助于:
NumberFormatInfo num = new CultureInfo("de-DE", false).NumberFormat;
double myDigit = 123456789; // you can also use int
string output = myDigit.ToString("N0" , num);
//output = 123.456.789
如果您使用
ToString(“F”,num)
您可以使用123456789.33
,您的输出将是123.456.789,33
您希望十进制分隔符是,而千位分隔符是。@AseemGautam-这就是它在我们这个小星球的几种文化中的工作方式。请尝试“改为”还是“0”?{0:#.###,00}. 另外:检查我的答案。您可以在应用程序级别执行此操作。节省了大量的工作,加上在代码中的无数个地方这样做只是维护地狱。不!!-这使得它完全依赖于当前的区域性设置。作为具有不同语言环境设置的不同用户尝试此操作,您将得到不同的答案。这不是将格式强制用于特定内容的正确方法。@RobLevine我同意,我不确定Xeramal是否会扩展到这个范围。最常见的模式是,#0.00
。在这种情况下,将产生0,01
和1.000.000,00
@Xeramal-使用de
。文化“de de”可能就是您所需要的!