我在C#中格式化double时遇到问题。我想实现这样的格式: 2.0,但我得到一个例外。
string result = string.Format("{0.0}", 2.0d);
我得到格式异常,输入字符串的格式不正确。当我将代码更改为:
string result = string.Format("{0:0.0}", 2.0d);
我得到逗号,而不是作为分隔符掉落。有没有办法从string.format获得2.0而没有任何其他函数?
答案 0 :(得分:2)
由于系统的区域设置,您收到逗号。如果您希望始终获得.
,请指定文化不变性:
string result = string.Format(CultureInfo.InvariantCulture, "{0:N1}", 2.0d);
答案 1 :(得分:1)
尝试此操作而不是使用String.Format()
:
var param = 2.0d
string result = param.ToString("N1");
答案 2 :(得分:1)
string.Format(CultureInfo.InvariantCulture, "{0:0.0}", 2.0d);
答案 3 :(得分:1)
试试这个,把你喜欢的文化:
string result = string.Format(new System.Globalization.CultureInfo("en-GB"),"{0:0.0}", 2.0d);