我想将一个非常小的数字转换为十进制,
让我们说
String secondsStr = 0;
Decimal secondsValue;
Boolean success = Decimal.TryParse(secondsStr, out secondsValue);
但问题是我有它的字符串表示,3.24E-08
String secondsStr = 3.24E-08;
Decimal secondsValue;
Boolean success = Decimal.TryParse(secondsStr, out secondsValue);
它总是将成功归为虚假。
如何解析得到0.00000003244657?
答案 0 :(得分:5)
您可以将TryParse
与NumberStyles
参数一起使用:
var ok = Decimal.TryParse(secondsStr, NumberStyles.Any, null, out secondsValue);
我使用过的NumberStyles.Any
。
表示使用除AllowHexSpecifier之外的所有样式。这是一个 复合数字样式。
更新:如果它与NulberStyles.Float
一起使用取决于当前的文化。如果它使用.
作为小数分隔符,则可以使用。所以你也可以使用CultureInfo.InvariantCulture
作为第三个参数:
var ok = Decimal.TryParse(secondsStr, NumberStyles.Float, CultureInfo.InvariantCulture, out secondsValue);
答案 1 :(得分:0)
试试这个
Boolean c= decimal.TryParse("3.24E-08", System.Globalization.NumberStyles.Float, null, out a);