在哪里可以设置ToString()方法写入double的样式? 我得到例如2,2345,而我想要2.2345
感谢你的提示,
再见
答案 0 :(得分:2)
Double.ToString()
method已超载,因此您可以使用几个不同的签名来调用它以获得所需的输出。
在这种情况下,您的区域性设置会影响ToString()
功能的输出。要获得所需的结果,请致电Double.ToString(IFormatProvider)
,传递CultureInfo.InvariantCulture
:
myDouble.ToString(CultureInfo.InvariantCulture);
这可以解决您的问题。
为了将来参考,请注意Double.ToString()
的另一个常见版本是Double.ToString(String)
重载。 String
参数是一个数字格式字符串,可以是预定义的字符串,也可以是您指定的字符串。例如:
myDouble.ToString("format string here");
MSDN上有几篇关于格式字符串的文章:Standard Numeric Format Strings和Custom Numeric Format Strings。
答案 1 :(得分:2)
double a = 2.2345;
string b = a.ToString(CultureInfo.InvariantCulture);
答案 2 :(得分:2)
您需要指定一个FormatProvider,通常作为CultureInfo。
例如:
string s = d1.ToString(System.Globalization.CultureInfo.InvariantCulture);
答案 3 :(得分:0)
如果您希望影响力在整个应用程序中。这可以在初始化时设置。因此,请注意,这将意味着所有文化的有效变化。
var culture = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name);
culture.NumberFormat.NumberDecimalSeparator = ".";
Thread.CurrentThread.CurrentCulture = culture;
然后只是:
string value = (1002.300).ToString();