Csharp/C#教程:如何将这种科学记数法转换为十进制?分享


如何将这种科学记数法转换为十进制?

在谷歌搜索后,使用下面的代码仍然无法编译

decimal h = Convert.ToDecimal("2.09550901805872E-05"); decimal h2 = Decimal.Parse("2.09550901805872E-05", System.Globalization.NumberStyles.AllowExponent); 

您还必须添加NumberStyles.AllowDecimalPoint

 Decimal.Parse("2.09550901805872E-05", NumberStyles.AllowExponent | NumberStyles.AllowDecimalPoint); 

MSDN很清楚:

表示数字字符串可以是指数表示法。 AllowExponent标志允许解析的字符串包含以“E”或“e”字符开头的指数,后跟可选的正号或负号以及整数。 换句话说,它成功地以nnnExx,nnnE + xx和nnnE-xx的forms解析字符串。 它不允许使用小数分隔符或在有效数字或尾数中签名; 要允许解析字符串中的这些元素,请使用AllowDecimalPoint和AllowLeadingSign标志 ,或使用包含这些单独标志的复合样式。

使用System.Globalization.NumberStyles.Any

 decimal h2 = Decimal.Parse("2.09550901805872E-05", System.Globalization.NumberStyles.Any); 

由于小数点分隔符(字符串中的“。”)因文化而异,因此使用不变文化更安全。 别忘了允许这个小数点分隔符(NumberStyles.Float)

  decimal h = Decimal.Parse("2.09550901805872E-05", NumberStyles.Float | NumberStyles.AllowExponent, CultureInfo.InvariantCulture); 

Perharps,更方便的代码就是当我们使用NumberStyles.Any时:

上述就是C#学习教程:如何将这种科学记数法转换为十进制?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

  decimal h = Decimal.Parse("2.09550901805872E-05", NumberStyles.Any, CultureInfo.InvariantCulture); 

 Decimal h2 = 0; Decimal.TryParse("2.005E01", out h2); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1028215.html

(0)
上一篇 2022年1月10日
下一篇 2022年1月10日

精彩推荐