一个string.Format问题(.NET)

时间:2010-12-13 04:04:31

标签: c# .net

有人可以详细说明以下格式字符串吗?我没有完全意识到这个意思。

String.Format("{0:#,0.##}", money);

感谢。

4 个答案:

答案 0 :(得分:3)

我没有我的开发系统所以我无法验证我要说的内容,但这是我的解释:

格式部分为“#,0。##”。我认为“#,0”部分指定逗号应该分开数千(例如1,000,000)。并且“。##”指定小数点后的位数。我本以为你需要“.00”来强制两位数(这对货币来说是正常的)。但我希望你所拥有的至少会导致小数点后四位数的四舍五入。

你试过吗?

答案 1 :(得分:2)

这意味着钱有千位分隔符(,),如果是十进制值,它将四舍五入到两位数,如果只有十进制值(.256)则为(0.27)

decimal money=12341257    //output= 12,341,257 
decimal money=1257        //output= 1,257
decimal money=1257.25     //output= 1,257.25
decimal money=1257.2468   //output= 1,257.25
decimal money=.50         //output= 0.50
decimal money=.759        //output= 0.76

<强>解释

 "{0:#,0.##}"
  #,0  //means that , as thousand seperator
  0.## //means that 0 is placed before if only decimal values as .56 to 0.56
  0.## //means if contains decimal then only display 2 digits after decimal
  0.00 //means 2 digits after decimal must be displayed whether or not money contains decimal value

答案 2 :(得分:0)

我认为这是一种带有千位分隔符的货币格式,如果包含十进制值,则仅显示小数点后的前两位。

这里自定义格式字符串的概述:
http://blog.stevex.net/string-formatting-in-csharp/

此链接包含更多详细信息,包括使用“,”char:
的千位分隔符的更自由形式的描述 http://msdn.microsoft.com/en-us/library/0c899ak8%28v=vs.71%29.aspx

答案 3 :(得分:0)

基本上,这会将格式设置为千位分隔符和2位小数。根据Microsoft文档,数字将四舍五入到正确的小数位。

这是自定义数字格式字符串的良好资源: http://msdn.microsoft.com/en-us/library/0c899ak8.aspx