我正在使用这行代码将字符串转换为int16
,int32
,double
和其他类型:
var convertedValue = value == null ? null : Convert.ChangeType(value, targetType, CultureInfo.InvariantCulture);
任何人都可以向我解释为什么convertedValue
被设置为例如205.0
和value = "20,5"
加倍后targetType
感谢您的帮助。
答案 0 :(得分:0)
它是一个小数分隔符。像20000一样可以用字符串写成20,000。同样,当您将20,000转换为双倍时,它将为您提供20000。
答案 1 :(得分:0)
我的VB.Net项目遇到了类似的问题。原因是编译器使用逗号("20,5"
)来处理值,就像字符串一样,因为十进制值没有小数点,因此它将"20,5"
转换为205
。我通过使用
.ToString().Replace(",", ".")