Задать вопрос
nepster-web
@nepster-web

Как в php отключить округление цифр?

Работаю с финансами и получилась такая ситуация:
Валюта совершенна не важна, поэтому я буду писать числа без валюты.

У меня есть сумма 30, ее нужно правильно распределить.
Итак 33%, 34% и еще 33%.
Далее меня интересует работа с частью 33%. Это у нас 9,9!

число 9.9 мне нужно посчитать по следующей схеме:
1 пользователь получит 30%
2 пользователь получит 20%
3 пользователь получит 10%
4 пользователь получит 10%
5 пользователь получит 10%
6 пользователь получит 10%
7 пользователь получит 10%

Если пользователей меньше чем 7, записать все дело в остаток.

Теперь считаем:
9.9/100*30 = 2,97 и тут php берет и честно округляет 2,97 до 3.

В результате на таких вот операциях не понятно куда теряются центы. Подскажите пожалуйста как вообще отключить округление?
  • Вопрос задан
  • 4482 просмотра
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 5
$a = 9.9;
$b = 100;
$c = 30;
$res = $a/$b*$c;
echo $res; //2.97


Скорее всего вы:
1) где-то сами округляете
2) приводите к целочисленному типу данных
Ответ написан
Комментировать
PHP сам ничего не округляет. Показывайте код.
Ответ написан
Комментировать
Evengard
@Evengard
Самое простое - умножить на 100 сумму.

Что, очередной Хайп готовите?
Ответ написан
@artishok
кратко
Можно округлять до второго знака
round(1.95583, 2);
Ответ написан
Комментировать
nepster-web
@nepster-web Автор вопроса
Все нормально, действительно затупил округляет в большую часть только при round. То число за рамки браузера вылезло.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽