Передавая числа с плавающей запятой в abs, вы получите число с плавающей запятой в результате. В этом случае у вас могут возникнуть проблемы с представлением с плавающей запятой: число с плавающей запятой никогда не бывает абсолютно точным, поэтому вы, скорее всего, получаете число, которое не точно 0,50, а что-то вроде 0,500000 ... 01. Вы можете попытаться округлить результат до желаемой точности (в вашем случае, я думаю, это два) с помощью функции php round.