逗号分开加倍

时间:2010-12-11 15:19:29

标签: c# .net

在哪里可以设置ToString()方法写入double的样式? 我得到例如2,2345,而我想要2.2345

感谢你的提示,

再见

4 个答案:

答案 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 StringsCustom 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();