- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
intval аналогично.:confused:
Идеи? :popcorn:
---------- Добавлено 02.03.2012 в 15:03 ----------
Если кому лень проверять:
Можно round, только в чём вопрос то ?
LEOnidUKG, можно round. Вопрос, чутка ниже дописал :)
ну тогда ceil уж точно.
А вообще конечно интересно, может быть баг? :)
LEOnidUKG, не о том речь) ceil, round все не то.
Вот она суть вопроса:
Я так понял этот же баг в мануалах: http://www.php.net/manual/en/function.floor.php#88197
---------- Добавлено 02.03.2012 в 17:15 ----------
Хотя если так:
<?php
$var=2083.95*100;
echo '2083.95 - '.floor("$var").'<br>';
?>
то всё ок :)
---------- Добавлено 02.03.2012 в 17:16 ----------
Только можно вопрос, зачем там вообще округление?
LEOnidUKG, цель отсечь все после 2-го знака. Вариант через floor как мне казалось приемлемый: floor($val*100)/100;
round не подходит. Нужно из 1.00999 получить 1.
---------- Добавлено 02.03.2012 в 15:31 ----------
LEOnidUKG, за вариант с кавычками спасибо, попробуем)
---------- Добавлено 02.03.2012 в 15:35 ----------
Но все равно такое безобразное отношение к числам мне не понятно :)
Но все равно такое безобразное отношение к числам мне не понятно
Так вроде это нормально, floor округляет дробь до ближайшего Меньшего целого.
Так как 2083.95*100 дробь, то и округляет в меньшую сторону. Дробь 2083.95*100 меньше целого 208395
Точность числа с плавающей точкой
Это связано с невозможностью точно выразить некоторые дроби в десятичной системе счисления конечным числом цифр. Например, 1/3 в десятичной форме принимает вид 0.3333333. . ..
Так что никогда не доверяйте точности последних цифр в результатах с числами с плавающей точкой и никогда не проверяйте их на равенство. Если вам действительно необходима высокая точность, вам следует использовать математические функции произвольной точности или gmp-функции.
Ёхан Палыч, ну я это уже вспомнил, поэтому самый быстрый вариант, это превратить в строчку, а потом уже в нормальное число. Тогда эти "невидимые" дроби отсекутся.
LEOnidUKG, ну, да, floor("$var") - преобразование строки в целое (если в строке нет символов "." или "e")
То есть это не есть баг, это фича, которую надо помнить.