当 conversionType 为十进制且输入为“40.00”时如何使用 Convert.ChangeType()
我的意思是,我想转换它:
string a = "40.00";
Convert.ChangeType(a, typeof(decimal))
结果是十进制值“4000”,
问题是转换调用是在 xmlToObject 转换器中的一个非常抽象的通用方法中进行的。我不想以编程方式添加很多不同的异常来正确转换。
问候克里斯
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在您当前的文化中,小数点可能不由句点字符表示。
通常,在执行区域性不变转换时,最好指定 CultureInfo.InvariantCulture< /a> 作为 IFormatProvider 参数href="http://msdn.microsoft.com/en-us/library/ms130977.aspx">方法:
The decimal point might not be represented by the period character in your current culture.
In general, when performing culture-invariant conversions, it's best to specify CultureInfo.InvariantCulture as the
IFormatProvider
argument to the method:该转换很可能是使用使用句点作为千位分隔符而不是小数点分隔符的区域性来完成的。
转换值时指定区域性:
The conversion is most likely done using a culture that uses the period as thousands separator instead of decimal separator.
Specify the culture when you convert the value:
以下代码
使 d = 40。这对我来说看起来不错。你的问题到底是什么?
编辑:
您似乎对所使用的文化有疑问。
执行以下操作进行转换:
The following code
makes d = 40. This looks fine for me. What is your issue exactly?
Edit:
It seems you might have an issue with the culture used.
Do this for conversion: