Тут дан подробный ответ на Ваш вопрос. В т.ч. как заметил коллега в в предыдущем ответе - если Вам нужна точность для чисел с плавающей точкой, для этих целей используются либо специальные механизмы (они в т.ч. описаны по ссылке выше) либо используются целые числа, конечный результат которых делится на 100 (это как пример, при работе с деньгами).
P.S. Подобное поведение актуально не только для PHP, но и для многих других языков, которые работает с числами с плавающей точкой "напрямую" (не хочу углубляться в техническое подробности, слишком много текста). В свою очередь некоторые языки по умолчанию могут обрабатывать любые числа (и с плавающей точкой и целые) как строки, изначально, и там такой "проблемы" изначально нет (в виду этого, там есть другие проблемы, но это уже другая история).