gpt4 book ai didi

c# - 为什么不向 Double.MaxValue 添加数字使其成为 Double.PositiveInfinity?

转载 作者:太空狗 更新时间:2023-10-29 20:13:17 25 4
gpt4 key购买 nike

Double.PositiveInfinity文档是这样写的:

This constant is returned when the result of an operation is greater than MaxValue.

但是,当我尝试将一个数字添加到 double 的最大值时,它不会返回 infinity。我试过运行这个:

double maxVal = Double.MaxValue;
maxVal = maxVal + 10000000000000000000;
Console.WriteLine(maxVal + " " + Double.IsInfinity(maxVal)); //prints 1.79769313486232E+308 False

为什么会这样?为什么它不将 maxVal 显示为 infinity

Here is a working fiddle.

最佳答案

那是因为您要添加的数字方式太小而无法在 Double.MaxValue 上产生影响值(value)。

double 的精度大约是 15 位数字,因此您需要一个至少为 1e292 的数字使其足够大以产生影响。

那就是 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000写出来了。

关于c# - 为什么不向 Double.MaxValue 添加数字使其成为 Double.PositiveInfinity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29263015/

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