如何定义浮动数量的一半?

时间:2011-01-22 17:33:32

标签: php floating-point numbers

最有效的方法是说浮点值是整数的一半,例如0.5,1.5,10.5?

首先我想到的是:

$is_half = (($number - floor($number)) === 0.5);

有没有更好的解决方案?

2 个答案:

答案 0 :(得分:4)

由于浮点精度误差,您通常应该检查差异是否低于某个低值(但请注意0.5可以准确表示,因此它不应该是一个问题,但它在一般与浮动)。

因此,您的代码对您的特定意义有益,通常,您可能希望这样做:

if (abs($number - floor($number) - $decimal) < 0.0001) {

$decimal的区别在于0.5

答案 1 :(得分:0)

if(abs($number) - (int)(abs($number)) == 0.5) {
    // half of an integer.
}