预测输出浮点数的Python 3.6的“math.floor”输出

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

在Python3(我使用3.6)他们decided to start outputting Integral values

这给我带来了以下问题。假设我们输入一个大浮点数

math.floor(4.444444444444445e+85)

这种情况下的输出正在

44444444444444447395279681404626730521364975775215375673863470153230912354225773084672

在Python2.7中,输出曾经是4.444444444444445e+85

问题1:3.6中的输出是否可重现?换句话说,它是什么?在不同的计算机上多次计算给了我相同的结果。我猜那时它是一个仅取决于输入4.444444444444445e+85的值。我的猜测是它是浮动的二进制表示的底限。输出的因子分解是

2^232 × 3 × 17 × 31 × 131 × 1217 × 1933 × 13217

因素2 ^ 232接近科学记数法所具有的10 ^ 70,但我不完全确定。

问题2:我想我知道如何采取浮动4.444444444444445e+85,提取其有效数和指数,并产生自己实际积分值4444444444444445 * 10 ** 70或浮动4.444444444444445e + 85,在我看来似乎更诚实float(4.444444444444445e+85)楼层的价值。是否有一个简洁的方法来恢复这个(让我称之为)诚实的地板?

好的,我收回了关于将'诚实'称为十进制表示的底线。由于计算机以二进制形式存储数字,因此可以公平地调用为二进制表示计算的输出。如果我对问题1的猜测是正确的话。

python-3.x floor
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.