如何将这种科学记数法转换为十进制?
在谷歌搜索后,使用下面的代码仍然无法编译
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