将指数数转换为整数
Convert exponential number to full number
将"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(sm.ToString()
正在投掷:
Value was either too large or too small for a Decimal.
谁能帮忙。
那是因为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
将"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(sm.ToString()
正在投掷:
Value was either too large or too small for a Decimal.
谁能帮忙。
那是因为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