我有一个从文本框中读取的字符串。它包含一个用于小数分隔的逗号。
我将NumberFormatInfo.CurrencyDecimalSeparator
设置为,
(逗号),但是当我将字符串转换为十进制Convert.ToDecimal(mystring);
时,我获得了一个点分隔的小数点分隔值。
示例:
decimal a=Convert.ToDecimal("1,2345"); ----> decimal is 1.2345
我也尝试过:
double a=Convert.ToDouble("1,2345");
但是,小数点再次出现
发布于 2013-11-11 02:46:32
所有这些都是关于文化的。如果你有“美国英语”以外的其他文化(也是良好的开发礼仪),你应该使用这样的东西:
var d = Convert.ToDecimal("1.2345", new CultureInfo("en-US"));
// (or 1,2345 with your local culture, for instance)
(显然,您应该将"en-US“替换为您的号码local culture的文化)
同样地,如果你想做ToString()
d.ToString(new CultureInfo("en-US"));
发布于 2013-12-30 14:10:22
我们可以像这样强制文化,而不是替换
var x = decimal.Parse("18,285", new NumberFormatInfo() { NumberDecimalSeparator = "," });
它将输出18.285
发布于 2016-12-30 16:51:15
我最终使用了这个解决方案。
decimal weeklyWage;
decimal.TryParse(items[2],NumberStyles.Any, new NumberFormatInfo() { NumberDecimalSeparator = "."}, out weeklyWage);
https://stackoverflow.com/questions/19893407
复制相似问题