Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Округление до меньшего числа.
Joker  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Программист маньяк
******

Профиль
Журнал
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1718
Пользователь №: 17079
На форуме: 7 лет, 9 месяцев, 1 день
Карма: 6

Трезвый :
7 лет, 11 месяцев, 7 дней


Всем привет. Столкнулся с ооооочень интересным случаем, может кто знает как такое можно решить:

var_dump((floor(16993.35 * 100) / 100)); // выведет: 16993.34



Куда делась 0.01 ?!?!?! Суть задачи простая округлить в меньшую сторону до 2 знака после запятой.
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14980
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 4 дня
Карма: 444




Цитата (Joker @ 10.03.2016 - 10:46)
Куда делась 0.01 ?!?!?!

При работе с вещественными числами такое возможно smile.gif

Цитата (Joker @ 10.03.2016 - 10:46)
Суть задачи простая округлить в меньшую сторону до 2 знака после запятой.

Используй правильные инструменты http://php.net/manual/ru/function.round.php и будет тебе счастье.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kaww  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1755
Пользователь №: 20757
На форуме: 6 лет, 10 месяцев, 8 дней
Карма: 184




Цитата (Joker @ 10.03.2016 - 06:46)
Куда делась 0.01 ?!?!?!
Цитата (Joker @ 10.03.2016 - 06:46)
Суть задачи простая округлить в меньшую сторону

floor(round(16993.35 * 100)) / 100

Еще, как вариант, приводить к строковому типу, затем делить на 100. Но, вероятно, это будет медленнее чем round()
З.Ы. Как понял, то это только пример. Реальный код другой, иначе эти действия не имеют смысла.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Joker  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Программист маньяк
******

Профиль
Журнал
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1718
Пользователь №: 17079
На форуме: 7 лет, 9 месяцев, 1 день
Карма: 6

Трезвый :
7 лет, 11 месяцев, 7 дней


Нашли решение

function roundRepay($checkFinalSum){
$checkFinalSum = (int)round($checkFinalSum*100, 2, PHP_ROUND_HALF_DOWN);
$checkFinalSum = $checkFinalSum/100;
return $checkFinalSum;
};
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14980
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 4 дня
Карма: 444




Цитата (Joker @ 10.03.2016 - 14:55)
Нашли решение

Во если честно, то не понял, что это за извращение такое "нашли".


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса