На данный вопрос уже ответили:
В ходе вычислений результат иной раз получается с большим количеством знаков после точки (большая десятичная часть).
Интересует алгоритм округления таких чисел по следующим критериям:
Есть некоторое число, характеризующее максимально допустимое количество знаков в десятичной части числа n
, равное 4
Тогда при получении числа 1.6547835
- можно поступить просто 1.6547835.toFixed(n)
- получим 1.6548
.
Все хорошо. Но если в ходе вычислений получилось целое число, то такой прием даст на выходе 1.0000
, что не очень хорошо.
Далее допустим получилось число 4.00000000005
, вышеприведенный способ даст 4.0000
, а хотелось бы 4
.
В общем нужен алгоритм который будет округлять следующим образом:
6.400000000000002 // 6.4
1.0000000000000004 // 1
5.3424505674 // 5.3425
5 // 5
6.4560000006 // 6.456
Я не прошу готовых ответов, формул и функций, направьте ход моих мыслей в нужное русло.
Можно поизвращаться и сделать так))
test(6.400000000000002); // 6.4
test(1.0000000000000004); // 1
test(5.3424505674); // 5.3425
test(5); // 5
test(6.4560000006); // 6.456
function myround(n, d) {
var digits = +"1".padEnd(d, "0");
return Math.round(n * digits) / digits;
}
function test(n) {
console.log(myround(n, 5));
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
При выполнении кода выскакивает ошибка this_changePage is not a function:
Хочу познать суть) в общем есть кучаВ си это динамическая область памяти, где аллоцируются объекты через new (говорю о ++)
Помогите, пожалуйста, вывести результат js-функции (sum) в окне вывода по щелчку кнопки