2012-11-12 47 views

回答

4

因为65.6在浮点数实际上是近似值65.6。它实际上少于65.6,即65.5999或类似的。

假设我的胡乱猜测的实际值是正确的,你有6559.9,其中由模运算符,然后通过10余9.

3

因为65.6 * 100是6559.9999999999划分为stripped to 6599

这就是floating points给你。

+0

那么我如何才能在php中获得实际的6559.9999999999? – user1643156

+0

您无法在二进制浮点系统中获取所有小数。其中一些(如65.6)无法表示。 – Thilo

1

因为:

<?php 

echo (65.7 * 100 == 6570) ? "Equal" : "Not equal"; // Equal 
echo (65.6 * 100 == 6560) ? "Equal" : "Not equal"; // NOT EQUAL !! 
echo (65.5 * 100 == 6550) ? "Equal" : "Not equal"; // Equal 

?> 

65.6 * 100是 6560的big red warning box here解释了为什么。

相关问题