Pan*_*kaj 2 c# string decimal type-conversion
我想将一个非常小的数字转换为十进制数,
让我们说吧
String secondsStr = 0;
Decimal secondsValue;
Boolean success = Decimal.TryParse(secondsStr, out secondsValue);
Run Code Online (Sandbox Code Playgroud)
但问题是我有它的字符串表示,3.24E-08
String secondsStr = 3.24E-08;
Decimal secondsValue;
Boolean success = Decimal.TryParse(secondsStr, out secondsValue);
Run Code Online (Sandbox Code Playgroud)
它总是将成功归为虚假.
如何解析得到0.00000003244657?
您可以使用TryParse与NumberStyles参数:
var ok = Decimal.TryParse(secondsStr, NumberStyles.Any, null, out secondsValue);
Run Code Online (Sandbox Code Playgroud)
我用过NumberStyles.Any哪些作品.
指示使用除AllowHexSpecifier之外的所有样式.这是一种复合数字样式.
更新:如果它适用NulberStyles.Float取决于当前的文化.如果它.用作小数分隔符,它可以工作.所以你也可以使用CultureInfo.InvariantCulture第三个参数:
var ok = Decimal.TryParse(secondsStr, NumberStyles.Float, CultureInfo.InvariantCulture, out secondsValue);
Run Code Online (Sandbox Code Playgroud)