在PHP中添加分数会产生不同的结果

在PHP中添加分数会产生不同的结果,php,Php,可能重复: 有人能给我解释一下吗 <?php echo (int) ((0.1 + 0.7)*10);//displays an output: `7` ?> 我本来希望看到8,但我得到了7-请解释一下这种行为 这是PHP的一个特殊功能吗?或者我不理解PHP中的整数类型 谢谢。请回答以下问题: 另外,有理数可以精确表示为 以10为基数的浮点数,如0.1或0.7,没有 精确表示为基数2中的浮点数,即 在内部使用,无论尾数的大小。因此,他们 如果没有 精度损失小。这可能会导致令人困惑

可能重复:

有人能给我解释一下吗

<?php
echo (int) ((0.1 + 0.7)*10);//displays an output: `7`
?>
我本来希望看到8,但我得到了7-请解释一下这种行为

这是PHP的一个特殊功能吗?或者我不理解PHP中的整数类型

谢谢。

请回答以下问题:

另外,有理数可以精确表示为 以10为基数的浮点数,如0.1或0.7,没有 精确表示为基数2中的浮点数,即 在内部使用,无论尾数的大小。因此,他们 如果没有 精度损失小。这可能会导致令人困惑的结果:例如 例如,floor0.1+0.7*10通常返回7,而不是 预期为8,因为内部表示类似于 7.9999999999999118


为什么要否决投票?你介意解释一下吗?可能是重复的,可能内部演示不同。您可能对阅读PHP手册感兴趣