我想在一个数字的千位上加一个逗号。
String.Format()是正确的路径吗?我应该使用什么格式?
我想在一个数字的千位上加一个逗号。
String.Format()是正确的路径吗?我应该使用什么格式?
当前回答
例如String。格式(“{0时0}",1);返回01,对我来说无效
这对我很有用
19950000.ToString("#,#", CultureInfo.InvariantCulture));
输出 19950000年
其他回答
如果你想要特定文化,你可能想试试这个:
使用命名空间:"using System.Globalization;"
(19950000.0)。ToString("N",new CultureInfo("en-US")) = 19,950,000.00
(19950000.0)。ToString("N",new CultureInfo("is-IS")) = 19.950.000,00
印度文化: (19950000.0)。ToString("N",new CultureInfo("hi-IN"))= 1,99,50,000.00
注意:一些区域性使用,表示小数而不是。所以要小心。
您可以使用这样的函数来格式化数字,并可选地传入所需的小数点后数位。如果没有指定小数点,它将使用两个小数点。
public static string formatNumber(decimal valueIn=0, int decimalPlaces=2)
{
return string.Format("{0:n" + decimalPlaces.ToString() + "}", valueIn);
}
我使用十进制,但你可以改变类型为任何其他或使用匿名对象。您还可以添加对负小数点值的错误检查。
您需要相同的格式值和特定于区域性。
Double value= 1234567;
value.ToString("#,#.##", CultureInfo.CreateSpecificCulture("hi-IN"));
输出:34567
我不再担心文化和潜在的格式问题的方法是,我将其格式化为货币,然后去掉货币符号。
如果(小数。TryParse(tblCell, out result)
{
formattedValue = result.ToString("C").Substring(1);
}
就这么简单:
float num = 23658; // for example
num = num.ToString("N0"); // Returns 23,658
更多信息在这里