Force Python calculation in double
本问题已经有最佳答案,请猛点这里访问。
我想用Python打印一张双人床。但它不起作用,我也不知道为什么。
我的代码:
1 2 | test = 3000 / (1500 * 2000) print str(test) |
我总是得到一个
1 2 | test = 3000 / (1500 * 2000) print '%.10f' % test |
我得到一个
我该如何告诉python这应该是一个双精度呢?
在python 2.x中,您需要将至少一个操作数转换为float,因为整数除法会导致python2.x中的截断输出:
1 2 3 4 5 6 | >>> 3000 / (1500 * 2000) 0 >>> 3000.0 / (1500 * 2000) # Or use float(3000) 0.001 >>> float(3000) / (1500 * 2000) 0.001 |
或者,您可以在python 2.x中导入python 3.x的除法,其中整数除法产生真正的除法:
1 2 3 | >>> from __future__ import division >>> 3000.0 / (1500 * 2000) 0.001 |
请注意,这将影响整个模块中的划分。
这是因为在数学运算中只使用整数值。因此,结果将是一个(截断的)整数。如果需要浮点结果,请至少涉及一个浮点操作数。
这种行为在python 3.x中是固定的。正如其他答案中指出的,固定的方法是将可除数强制转换为
如果您想让