Округление до заданной точности JavaScript [дубликат]

196
01 июля 2018, 02:00

На данный вопрос уже ответили:

  • Округление числа после запятой 2 ответа

В ходе вычислений результат иной раз получается с большим количеством знаков после точки (большая десятичная часть).
Интересует алгоритм округления таких чисел по следующим критериям: Есть некоторое число, характеризующее максимально допустимое количество знаков в десятичной части числа 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

Я не прошу готовых ответов, формул и функций, направьте ход моих мыслей в нужное русло.

Answer 1

Можно поизвращаться и сделать так))

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)); 
}

READ ALSO
Ошибка is not a function React JS

Ошибка is not a function React JS

При выполнении кода выскакивает ошибка this_changePage is not a function:

193
Куча и ее множественные трактовки

Куча и ее множественные трактовки

Хочу познать суть) в общем есть кучаВ си это динамическая область памяти, где аллоцируются объекты через new (говорю о ++)

195
Вывести результат функции в окне вывода по щелчку кнопки

Вывести результат функции в окне вывода по щелчку кнопки

Помогите, пожалуйста, вывести результат js-функции (sum) в окне вывода по щелчку кнопки

184