我看到为什么-1/2在C++中被评估为0,而在Python中为-1?表示整数除法在Python中向无穷大舍入,即floor应用于结果.
在我练习的时候,我想int(value)也会做一些事情floor,这些事情int(-1.5) == -1应该-2在我的脑海里.
所以问题是:为什么规则integer division和功能之间是不一致的int()?有没有合理的解释?
int()去掉小数部分;它不进行任何舍入。从文档中:
\n\n\n如果 x 是浮点,则转换将截断为零。
\n
将 a 转变float为 anint这是完全合乎逻辑的行为。这不是分隔、地板或其他。
否则,楼层//除法运算符显然会进行楼层划分,而不是截断。在Python 2中,对于两个整数操作数,/除法也是楼层。再次查看文档:
\n\n\n结果是对结果应用 \xe2\x80\x98floor\xe2\x80\x99 函数的数学除法
\n
其中math.floor()记录为:
\n\n\n以浮点形式返回x的下限,即小于或等于x 的最大整数值。
\n
我认为这里没有矛盾;除法楼层,将浮点数转换为整数截断。
\n| 归档时间: |
|
| 查看次数: |
1535 次 |
| 最近记录: |