为了账号安全,请及时绑定邮箱和手机立即绑定

C#用空格分隔千位来格式化数字

C#用空格分隔千位来格式化数字

C#
肥皂起泡泡 2021-07-19 15:50:47
我正在尝试根据以下要求格式化小数:千位用空格“”隔开小数点由逗号“,”分隔(这是通过使用适当的文化来实现的,在本例中为克罗地亚语)小数点后有两位数。到目前为止,我得到了这个: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"


查看完整回答
反对 回复 2021-07-31
  • 2 回答
  • 0 关注
  • 338 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信