我有一个从文本框中读取的字符串。它包含一个逗号分隔的小数。

我已将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"));

10-01 05:18