首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >字符串到小数的转换:点分隔而不是逗号

字符串到小数的转换:点分隔而不是逗号
EN

Stack Overflow用户
提问于 2013-11-11 02:30:06
回答 6查看 143.4K关注 0票数 46

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

我将NumberFormatInfo.CurrencyDecimalSeparator设置为, (逗号),但是当我将字符串转换为十进制Convert.ToDecimal(mystring);时,我获得了一个点分隔的小数点分隔值。

示例:

代码语言:javascript
复制
decimal a=Convert.ToDecimal("1,2345"); ----> decimal is 1.2345

我也尝试过:

代码语言:javascript
复制
double a=Convert.ToDouble("1,2345"); 

但是,小数点再次出现

EN

回答 6

Stack Overflow用户

发布于 2013-11-11 02:46:32

所有这些都是关于文化的。如果你有“美国英语”以外的其他文化(也是良好的开发礼仪),你应该使用这样的东西:

代码语言:javascript
复制
var d = Convert.ToDecimal("1.2345", new CultureInfo("en-US"));
// (or 1,2345 with your local culture, for instance)

(显然,您应该将"en-US“替换为您的号码local culture的文化)

同样地,如果你想做ToString()

代码语言:javascript
复制
d.ToString(new CultureInfo("en-US"));
票数 52
EN

Stack Overflow用户

发布于 2013-12-30 14:10:22

我们可以像这样强制文化,而不是替换

代码语言:javascript
复制
var x = decimal.Parse("18,285", new NumberFormatInfo() { NumberDecimalSeparator = "," });

它将输出18.285

票数 36
EN

Stack Overflow用户

发布于 2016-12-30 16:51:15

我最终使用了这个解决方案。

代码语言:javascript
复制
decimal weeklyWage;
decimal.TryParse(items[2],NumberStyles.Any, new NumberFormatInfo() { NumberDecimalSeparator = "."}, out weeklyWage);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19893407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档