我正在尝试根据以下要求格式化小数:千位用空格“”隔开小数点由逗号“,”分隔(这是通过使用适当的文化来实现的,在本例中为克罗地亚语)小数点后有两位数。到目前为止,我得到了这个:String.Format(new CultureInfo("hr-HR"), "{0:# ##0.00}", input)如果数字在小数点前有 4 位或更多位,则此方法效果很好。例如,值5500.5给我"5 500,50"和-5500.5给我"-5 500,50",这就是我想要的。但是如果数字的位数较少,我会在数字前面出现一个空格。例如500.5给了我"500,50"而不是"500,50"。对于负数,在减号和数字之间放置空格:-500.5给我"- 500,50"。所以我不能简单地修剪结果。我怎样才能达到我所需要的?
2 回答
慕斯709654
TA贡献1840条经验 获得超5个赞
您可以使用自定义NumberFormatInfo来格式化数字。
var nfi = new NumberFormatInfo();
nfi.NumberGroupSeparator = " "; // set the group separator to a space
nfi.NumberDecimalSeparator = ","; // set decimal separator to comma
然后使用格式化数字
number.ToString("N2", nfi); // numeric format with 2 decimal digits
这给你
(5500.5).ToString("N2", nfi) // "5 500,50"
(-500.5).ToString("N2", nfi) // "-500,50"
(-5500.5).ToString("N2", nfi) // "-5 500,50"
- 2 回答
- 0 关注
- 338 浏览
添加回答
举报
0/150
提交
取消