#javascript #google-apps-script
#javascript #google-apps-script
Вопрос:
У меня проблема с вычислением .toFixed(2) и надеюсь, что кто-нибудь может дать мне альтернативный способ или идею. Расчет основан на взносах социального страхования Германии. У меня общая сумма 3700. Эту сумму нужно умножить на 1,525% и, наконец, округлить сумму до двух десятичных чисел. Вот мой код:
var _PVGross = 3700;
var _charge = 1.525;
result = ((_PVGross / 100) * _charge).toFixed(2);
вычисление вручную:
3700 / 100 = 37
37 * 1.525 = 56.425
Итак, приведенный выше код возвращает мне 56,42. Но по немецкому законодательству оно должно быть 56,43, потому что третья цифра — пять. Это означает округление. Я попробовал несколько ручных тестов с https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_tofixed2 но каждый раз, если за точкой будет только три цифры или нуля, я получу неверный результат.
Другой пример:
если у меня есть это количество / код:
56.42500000001.toFixed(2)
результат будет 56,43. И теперь у меня заканчиваются идеи. Я использую скрипт Google Apps для этого вычисления. У кого-нибудь еще есть эта проблема и / или идеи?
Ответ №1:
Вы пробовали что-то подобное Math.round((56.425 Number.EPSILON) * 100) / 100
?
Ответ №2:
Вы можете округлить его, используя Math.pow
var _PVGross = 3700;
var _charge = 1.525;
var res = 56.425;
result= Math.round(res * 100) / 100);