我有一个从文本框中读取的字符串。它包含一个逗号分隔的小数。
我已将NumberFormatInfo.CurrencyDecimalSeparator
设置为,
(逗号),但是当我将字符串转换为十进制Convert.ToDecimal(mystring);
时,我获得了一个十进制的点分隔值。
例:
decimal a=Convert.ToDecimal("1,2345"); ----> decimal is 1.2345
我也尝试过:
double a=Convert.ToDouble("1,2345");
但点再次为小数
最佳答案
所有这些都是关于文化的。如果您有除“美国英语”以外的其他文化(以及良好的发展方式),则应使用以下内容:
var d = Convert.ToDecimal("1.2345", new CultureInfo("en-US"));
// (or 1,2345 with your local culture, for instance)
(显然,您应该使用local culture数字文化来代替“en-US”)
同样的方式,如果你想做
ToString()
d.ToString(new CultureInfo("en-US"));