将具有许多前导零的字符串转换为十进制

Converting string with many leading zeros to decimal

如何转换如下所示的字符串:

0005.47

到十进制值5.47.

这个值保存在 newStringArray[1] 所以我这样做了:Convert.ToDecimal(newStringArray[1])

但结果我得到了这个值:547

这里有什么意义?

您的全球化设置认为点不是小数分隔符而是千位分隔符

您需要将有关此信息传递给Convert.ToDecimal。可以通过 CultureInfo.InvariantCulture 属性 来通知转换器在转换时使用正确的十进制符号。

string test = "0005.47";
decimal value = Convert.ToDecimal(test, CultureInfo.InvariantCulture);