gpt4 book ai didi

Python 舍入问题

转载 作者:太空狗 更新时间:2023-10-29 18:28:26 25 4
gpt4 key购买 nike

我在 python 中遇到了一个非常奇怪的问题。 (使用 python 2.4.x)

在窗口中:

>>> a = 2292.5
>>> print '%.0f' % a
2293

但是在 Solaris 中:

>>> a = 2292.5
>>> print '%.0f' % a
2292

但这在windows和solaris中都是一样的:

>>> a = 1.5
>>> print '%.0f' % a
2

有人可以解释这种行为吗?我猜它的平台取决于 python 的编译方式?

最佳答案

最终负责执行格式化的函数是 PyOS_snprintf(参见 the sources)。正如您猜测的那样,不幸的是,它依赖于系统,即它依赖于 vsprintfvsnprintf 或最终由平台的 C 运行时库提供的其他类似函数(我不不记得 C 标准是否对 float 的“%f”格式有任何说明,这些 float 在两个可能的舍入值之间“恰好在中间”……但是,C 标准是否对此松懈,或者更确切地说,C 标准是严格的,但是一些 C 运行时破坏了它,最终是一个相当学术的问题......)。

关于Python 舍入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2174081/

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