将非常小的数字字符串转换为十进制
本文关键字:字符串 转换 十进制 数字字符 数字 非常 | 更新日期: 2023-09-27 18:17:47
我想把一个很小的数字转换成十进制,
让说
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);
它总是返回成功为false。
如何解析得到0.00000003244657
您可以使用TryParse
和NumberStyles
参数:
var ok = Decimal.TryParse(secondsStr, NumberStyles.Any, null, out secondsValue);
我已经使用了NumberStyles.Any
,这是有效的。
表示使用除AllowHexSpecifier以外的所有样式。这是一个合数样式。
Update:如果它适用于NulberStyles.Float
取决于当前区域性。如果它使用.
作为十进制分隔符,它可以工作。所以你也可以使用CultureInfo.InvariantCulture
作为第三个参数:
var ok = Decimal.TryParse(secondsStr, NumberStyles.Float, CultureInfo.InvariantCulture, out secondsValue);
试试这个
Boolean c= decimal.TryParse("3.24E-08", System.Globalization.NumberStyles.Float, null, out a);