Как мы все знаем, арифметика с плавающей запятой не всегда полностью точна, но как вы справляетесь с ее несогласованностью? В качестве примера, в PHP 5.2.9: (этого не происходит в 5.3) echo round(14.99225, 4); // 14.9923 echo round(15.99225, 4); // 15.9923 echo round(16.99225, 4); // 16.9922 ?? echo round(17.99225, 4); // 17.9922 ?? echo round(25.99225, 4); […]
Почему на PHP PHP преобразует результат (int) ((0.1+0.7)*10) в 7, а не 8? Я знаю, что результат будет (float) 8 когда он будет передан (int) результат будет равен 7? Почему это происходит?
Мне нужно округлить десятичное число в PHP до двух знаков после запятой, чтобы: 49.955 становится … 49.95 Я попробовал number_format , но это просто округляет значение до 49.96 . Я не могу использовать substr, потому что число может быть меньше (например, 7.950). На данный момент я не смог найти ответ. Любая помощь очень ценится.
Я использую PHP 5.2.13 на моем Linux-сервере. Я получаю странную ошибку при округлении чисел. Это мой тестовый пример: <?php echo " " . round(1.505, 2) . "\n"; echo " " . round(11.505, 2) . "\n"; echo " " . round(111.505, 2) . "\n"; echo " " . round(1111.505, 2) . "\n"; echo " " . […]