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

Mat*_*Rek 3 c# decimal type-conversion leading-zero

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

0005.47
Run Code Online (Sandbox Code Playgroud)

到十进制值5.47。

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

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

这有什么意义?

Ste*_*eve 6

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

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

string test = "0005.47";
decimal value = Convert.ToDecimal(test, CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)