np.finfo(np.float64).max + 1 中浮点加法如何工作?

问题描述 投票:0回答:1

在这种情况下,浮点加法如何工作?

In [6]: np.finfo(np.float64).max + 1
Out[6]: 1.7976931348623157e+308

为什么没有出现溢出?

floating-point ieee-754
1个回答
0
投票

浮点类型是一种科学记数法,这意味着它们越接近 0,精度就越高。 64 位浮点数的情况具有大约 16 位十进制精度:53 位有效数,因此

log10(2^53)
约为 16。这意味着在数字大小上小于这 16 位的任何值都会因舍入而丢失。

对于

10^308
来说确实如此。其幅度远远超出了
1
的值在 16 位精度之内的范围。事实上,对于大于约
10^16
的值,添加 1 根本不会改变该值,无论是否溢出。

© www.soinside.com 2019 - 2024. All rights reserved.