将不同的数字转换为小数 C#(科学记数法到十进制)

Posted

技术标签:

【中文标题】将不同的数字转换为小数 C#(科学记数法到十进制)【英文标题】:Convert to Different number to Decimals C# (scientific notation to decimal) 【发布时间】:2014-08-20 14:58:25 【问题描述】:

我试图将下图转换为小数,但它引发了错误。请告诉我如何更改格式

8.37E-08-05(科学记数法) ====> 0.00000008372014000000

var convertDecimal = Convert.ToDecimal("8.37E-08");

错误: 输入字符串的格式不正确。

【问题讨论】:

你试过什么代码? 你是如何“尝试转换”的? msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx 错误信息完全正确。 “8.37E-08-05”不是有效数字。 @ChristianHayter 的意思是字符串末尾的-05 不是科学计数法的有效部分。字符串对8.37E-08有效,但是一旦遇到-05,字符串就无效了。 【参考方案1】:

首先,字符串格式应该类似于8.37E-08 而不是8.37E-08-05。 它是一个浮点数。您必须将其转换如下

 decimal d = decimal.Parse("8.37E-08", System.Globalization.NumberStyles.Float);

【讨论】:

【参考方案2】:

谢谢山姆

我使用相同的方法

 decimal convertDecimal = Decimal.Parse("8.37E-08", NumberStyles.AllowExponent | NumberStyles.AllowDecimalPoint); 

【讨论】:

以上是关于将不同的数字转换为小数 C#(科学记数法到十进制)的主要内容,如果未能解决你的问题,请参考以下文章

带小数的十进制数字和2进制数字相互转换的逻辑

如何将数值转化为二进制数?

如何在 C# 中将 E+ 数字从字符串转换为十进制? [复制]

将十进制转换为小数点后两个零的字符串,和逗号? C# [重复]

parseIntparseFloatNumber总结

将科学计数法中的数字转换为十进制[关闭]