c# - 将指数数转换为整数

标签 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(sm.ToString() 抛出:

Value was either too large or too small for a 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

关于c# - 将指数数转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50259912/

相关文章:

c# - 将空值插入到 sql server 中的 int 列

c# - asp.net 中的 View 状态和自定义控件

c# - 这个过程会影响数据库的可用性吗?

c# - 何时使用 InvalidOperationException 或 NotSupportedException?

c# - 仅在上次触发后经过一段时间后处理事件的最简单方法是什么?

c# - C# 中的 .NET Unreal Tournament 机器人 - 无法构建 Codeplex 代码

c# - NuGet 提要与 NuGet 服务器与 NuGet 画廊

c# - 在使用 Json.NET 序列化期间向所有类添加自定义类型名称

wpf - 在 WPF 中通过拖放使用继承时出现问题

json - 在 C# 4.0 中解析 JSON