首页 > 解决方案 > System.FormatException if use new CultureInfo("id-ID") - 印度尼西亚文化

问题描述

我正在尝试使用印度尼西亚文化将指数值转换为十进制,但它不起作用..

string _ex = "1.2162876E-5";
decimal _dec = decimal.Parse(_ex, NumberStyles.Float, new CultureInfo("id-ID"));

它抛出了我 System.FormatException

p

但如果我使用 en-US decimal d0 = decimal.Parse(_ex, NumberStyles.Float, new CultureInfo("en-US")); 它可以正常工作

我错过了什么?

请帮忙

非常感谢 Don2

标签: c#

解决方案


id-ID中,小数点分隔符 ( CultureInfo.NumberFormat.NumberDecimalSeparator) 是",",因此它期望"1,2162876E-5"作为输入(表示数值零点零零零零一二等)。如果输入使用 a"."表示小数点,那么您可能应该使用不变的文化来解析它 ( CultureInfo.InvariantCulture),而不是特定于区域设置的文化。


推荐阅读