为什么App Engine与我的本地机器相比显示不同的浮动舍入结果?

Dan*_*Dan 5 python google-app-engine

如果你把下列App Engine的壳牌'50.49'.该结果在2.5和2.7运行时都是一致的.

 >> a = '%0.2f' % (round(float(u'50.485'), 2),)
 >> a
'50.49'
Run Code Online (Sandbox Code Playgroud)

但是,如果我把同样的东西放到运行python 2.7.1的本地MacBook Pro中,我会得到'50.48'.

 >> a = '%0.2f' % (round(float(u'50.485'), 2),)
 >> a
'50.48'
Run Code Online (Sandbox Code Playgroud)

为什么会有所不同?如何在本地计算机和App Engine的服务器之间保持一致?

dot*_*mag 4

显然,Google App Engine 使用“float”C 类型(IEEE 754 单精度),而本地 Python 使用“double”(IEEE 754 双精度)。

我怀疑 CPython 有一个配置开关可以使用“float”而不是“double”,但还没有找到。