PHP类型转换float-> int

时间:2010-01-13 09:01:30

标签: php types casting

鉴于此PHP代码:

// total is 71.24 (float)
$value = $total * 100;
var_dump($value);
$valuecast = (int)$value;
var_dump($valuecast);
settype($value, 'int');
var_dump($value);

var_dump($ value)给出 float(7124)

var_dump($ valuecast)给出 int(7123)

settype后的

var_dump($ value)给出 int(7123)

如何才能获得正确的类型转换?

2 个答案:

答案 0 :(得分:4)

来自TypeCasting Float to Integer

上的PHP手册
  

警告

     

永远不要将未知分数转换为整数,因为这有时会导致意外结果。

<?php
    echo (int) ( (0.1+0.7) * 10 ); // echoes 7!
?>
     

另请参阅warning about float precision

答案 1 :(得分:2)

对于float到int,我建议round。这是为了迎合IEEE浮动不精确。