将指数数转换为完整数

时间:2018-05-09 18:29:19

标签: c# .net c#-4.0

"2.3456754342345466E+36"转换为完整数字:

var sm = Convert.ToDouble(splitted[0]) + Convert.ToDouble(splitted[1]);  

**//sm value is === "2.3456754342345466E+36"**

var d = Decimal.Parse(sm.ToString(), 
System.Globalization.NumberStyles.Float);
if (splitted[0].Length ==Convert.ToString(d).Length)
 {
 sum.Add(""+sm);
 }
else
{
 sum.Add(""+splitted[0]);
}

Decimal.Parse投掷:

  

对于十进制

,值太大或太小

1 个答案:

答案 0 :(得分:1)

这是因为decimal最大值约为7.9e+28,所以它不适合您的号码。您需要将其存储在double中。如果要打印放置数字,可以使用带有格式说明符的ToString()方法以任何方式格式化它。例如,F0将给出一个没有分数的直号:

var sm = "2.3456754342345466E+36";
var d = double.Parse(sm, System.Globalization.NumberStyles.Float);
Console.WriteLine(d.ToString("F0")); //Prints 2345675434234550000000000000000000000