Я просто выполнил простой скрипт round(8.32, 1)
в CGI, затем он возвращает 8.300000000000001. Но когда я выполняю его в CLI с php -r "echo round(8.32, 1);"
, результат будет 8.3, который я ожидал. Моя версия PHP - 5.6.2.Функция PHP round возвратила странный результат
1
A
ответ
2
У вас разные настройки precision в вашей конфигурации.
ini_set('precision', 10); var_dump(round(8.32, 1)); // double(8.3)
ini_set('precision', 20); var_dump(round(8.32, 1)); // double(8.3000000000000007105)
Почему это происходит, вы могли прочитать здесь: http://en.wikipedia.org/wiki/IEEE_floating_point
0
round()
возвращает float
, который является приближенным, и в зависимости от того, как вы показываете это может показать ошибку округления.
Вы должны использовать number_format()
, который возвращает строку.
echo number_format(8.32, 1);
Смежные вопросы
- 1. Функция php current_time() возвратила неправильное время
- 2. функция sha1 дает странный результат
- 3. Функция LOOKUP дает странный результат
- 4. Функция недели дает странный результат
- 5. PHP, странный результат
- 6. странный результат strrpos PHP
- 7. PHP: regex заменить странный результат
- 8. Странный результат вычитания с PHP
- 9. PHP взрывающаяся строка, странный результат
- 10. Функция SQL Round
- 11. функция JayData OrderBy производит странный результат
- 12. (новая функция (...)). ToString() дает странный результат
- 13. Math Round Функция
- 14. SQL ROUND() функция вопрос
- 15. Функция Round() SQL Server Reporting Services Round()
- 16. SQL Server 2014 Round Функция
- 17. Функция Strange C возвратила поведение типа переменной
- 18. PHP - возвращающая переменная, производящая странный результат
- 19. Странный результат от file_get_contents
- 20. JQuery DataTable странный результат
- 21. Mysql ROUND функция
- 22. Функция fwrite round numbers
- 23. Результат программы Java странный результат
- 24. Android получает странный результат от php-сервера
- 25. PHP странный результат умножения на -1
- 26. Странный результат с модулем десятичного Python
- 27. Функция php возвращает результат
- 28. Странный результат на json_encode
- 29. PHP round function
- 30. PHP round different results
Используйте 'number_format()', который возвращает строку. – Barmar
Как вы выводите результат для версии CGI? – newman