Всем добрый день.
Версия PHP 5.6.37
Есть такой код
$n = ceil(99 * ((10 / 100) * (10 / 100)));
в ходе расчетов получаем просто 1
но ceil округляет его до 2
я понимаю что тип полученный в ходе расчетов double и возможно с этим связан данный баг, но к примеру такой вот код
$n = ceil((double)1.00);
или такой
$n = ceil(100 * 0.01);
работает как надо и возвращает 1.
Если ли какие ни будь идеи почему это происходит? И можно ли как то это пофиксить?
Попробуй выполнить код
$n = 100 * ((10 / 100) * (10 / 100));
printf("%.18f\n",$n);
И посмотрите результат.
У Вас число с плавающей запятой, а такие числа не могут точно представлять все рациональные числа. Поэтому результат целочисленного преобразования всегда имеет неопределенность в отношении одной единицы.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В одной таблице список пользователей (поля: id, логин, пароль, права), а вторая это таблица с видеоТо есть будет штук 10 видео и у разных пользователей...
WordpressТема Betheme