Округление

Сколько будет?

  • 117559.36

    Голосов: 6 60,0%
  • 117559.37

    Голосов: 4 40,0%

  • Всего проголосовало
    10

Фанат

oncle terrible
Команда форума
С фига ли это мы не знаем значащую величину? У тебя твой секретный коэффициент имеет значащие стотысячные?
 

MiksIr

miksir@home:~$
> У тебя твой секретный коэффициент имеет значащие стотысячные?
Нет, на самом деле вот он: 4.87 * 0.7 * 0.95
А есть правило определения значащих цифр в результате произведения на основе значащих цифр исходных? В общем была такая мысль, да, но до конца ее развить не успел, так что ссылки на правило приветствуются.
 

AmdY

Пью пиво
Команда форума

MiksIr

miksir@home:~$
AmdY спасибо за PHP классы и расширения для решения проблемы округления на JavaScript.
 
  • Like
Реакции: scb

Redjik

Джедай-мастер
ну так может для унификации - аяксом у сервера просить значения для JS или сразу передавать в JS уже округленный вариант
 

MiksIr

miksir@home:~$
Да не, там рассчет ведется на клиенте - для скорости интерфейса + рассчет на сервере как валидный, и сравнение рассчетов, что бы не врать клиенту в случае чего.
На самом деле нашел вот такое решение
Код:
function money_multiply (a, b) {
    var log_10 = function (c) { return Math.log(c) / Math.log(10); },
        ten_e  = function (d) { return Math.pow(10, d); },
        pow_10 = -Math.floor(Math.min(log_10(a), log_10(b))) + 1;
    return ((a * ten_e(pow_10)) * (b * ten_e(pow_10))) / ten_e(pow_10 * 2);
}
 

С.

Продвинутый новичок
В таком случае разница вполне допустима на определенную погрешность. Если она не выходит за пределы, то берется клиентский результат, иначе маркируется, как возможная подделка.
 
Сверху