【发布时间】:2013-09-27 18:53:07
【问题描述】:
我有一个名为totalCost 的double 变量,它的值是1025。
调用一个简单的string.Format 的结果如下:
?string.Format("{0}",totalCost)
"1,025"
我的千位分隔符是点,而小数分隔符是逗号。
奇怪的部分如下:
?string.Format("{0:0.0}",totalCost)
"1,0"
不应该是1025.0(或1,025.0)吗?
它似乎将双精度转换为字符串(给出“1.025”),然后在不使用我的分隔符设置的情况下重新解析它(将其解释为 1 和 25 千),最后格式化转换后的值。
编辑:线程文化是:
?System.Threading.Thread.CurrentThread.CurrentCulture
{it-IT}
【问题讨论】:
-
我已经编辑了我的问题,因为我输入了错误的分隔符
-
您确定该值为
1025?这两种情况都适合1.025的值和小数点分隔符是逗号 -
你能检查一下你的 CultureInfo.CurrentCulture 是什么吗?如果您发布它,我们可以重新创建您的场景。
-
对我来说,它输出
1025,0和文化it-IT -
string.Format("{0:0.0}",1025.0)=>"1025,0"
标签: c# string.format