繁体   English   中英

当conversionType为十进制且输入为“40.00”时,如何使用Convert.ChangeType()

[英]How to use Convert.ChangeType() when conversionType is decimal and input is “40.00”

我的意思是,我想转换这个:

string a = "40.00";
Convert.ChangeType(a, typeof(decimal))

结果是十进制值“4000”

问题是转换调用是在xmlToObject转换器中的一个非常抽象的泛型方法。 我不想以编程方式添加许多不同的异常来正确转换。

对克里斯说

您当前文化中的句点字符可能不会表示小数点。

在一般情况下,进行区域性不变的转换时,最好到指定CultureInfo.InvariantCulture作为IFormatProvider参数的方法

(decimal) Convert.ChangeType(a, typeof(decimal), CultureInfo.InvariantCulture);

转换很可能是使用将句点用作千位分隔符而不是小数分隔符的文化来完成的。

转换值时指定区域性:

Convert.ToDecimal(a, CultureInfo.InvariantCulture)

以下代码

 string s = "40.00";
 decimal d = (decimal)Convert.ChangeType(s, typeof(decimal));

使d = 40.这对我来说很好。 你到底是什么问题?

编辑:似乎您可能对使用的文化有问题。 这样做是为了转换:

string s = "40.00";
decimal d = (decimal)Convert.ChangeType(s, typeof(decimal), CultureInfo.InvariantCulture);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM