2012-07-16 120 views
4

我明白15 mod 5 = 0,因为没有剩余部分。为什么15.5 mod 5 = 0?

但为什么15.5 mod 5 == 0呢?还有没有.5?

$time = "15.5"; 
$interval = 5.0; 
if($time % $interval == 0) 
    echo "it's time!"; 
else 
    echo "not time"; 

//Outputs: it's time! 
+0

@Thilo看来是PHP从URL例子... – HeatfanJohn 2012-07-16 01:24:33

回答

15

PHP docs

模量的

操作数转换成整数(通过汽提的小数部分)处理之前。

如果要保留小数余数,请使用fmod。 (感谢您的链接,奥利查尔斯沃思,不知道这样的功能存在。)

+1

好,吸 – dukevin 2012-07-16 01:25:35

+7

@KevinDuke:它不吸那么多。改用['fmod'](http://www.php.net/manual/en/function.fmod.php)。 – 2012-07-16 01:26:55

+0

@Oli谢谢,就是我在找的 – dukevin 2012-07-16 01:28:02