gpt4 book ai didi

c# - 在 .NET 中解析一个大的指数数

转载 作者:行者123 更新时间:2023-11-30 16:00:29 25 4
gpt4 key购买 nike

我正在尝试将一些 Java 代码转换为 C#,但遇到了在 .NET 中解析非常大的指数数的问题。

我要解析的数字是 "1.79769313486232E+308"

我试过同时使用 double (这是我正在翻译的代码中使用的)和十进制数,但都抛出数字太大的溢出异常。

double result = double.Parse("1.79769313486232E+308",
System.Globalization.NumberStyles.Float,
System.Globalization.CultureInfo.InvariantCulture)

我也尝试过各种其他组合,例如使用 NumberStyles.Any

这在 Java 中运行良好。但在我尝试转换 code from Java 之前,我希望 .NET 中有另一个( native )选项。有什么想法吗?

最佳答案

System.Numerics.BigInteger result = System.Numerics.BigInteger.Parse("1.79769313486232E+308", System.Globalization.NumberStyles.Float);

你可以试试BigInteger您应该在您的项目中添加对 System.Numerics 的引用

编辑

由于注释,当前数字可以用 int 表示(不会丢失任何信息),因为它本身就是整数。这是科学计数法,所以这是如何翻译的。例如:

1.23E+11 or as 1.23 X 10^11

所以在他的情况下:

1.79769313486232E+308 = 1.79769313486232*10^308  

它远离双边界,可以写成双整数。该数字本身是整数,所以没有问题!

关于c# - 在 .NET 中解析一个大的指数数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40080265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com