Я написал следующую простую функцию, которая возвращает число с максимум 6 десятичными разрядами:

getFixedDecimalValue(number) {
  let fixedDecimalValue = (((number *= 1000000) - (number % 1)) / 1000000);
  return fixedDecimalValue;
}

Я хотел бы, чтобы эта функция принимала второй параметр, который определял бы, сколько десятичных разрядов нужно вычислить, а затем вернуло это значение (по умолчанию 6 dp).

Что-то типа:

getFixedDecimalValue(number, decimalPlaces = 6) {
  let fixedDecimalValue = (((number *= decimalPlaces) - (number % 1)) / decimalPlaces);
  return fixedDecimalValue;
}

Вопрос .
Что такое элегантный метод поворота

6 into 1000000  

Или номер

3 into 1000

Благодарность!

-2
GustavMahler 20 Авг 2018 в 15:36

4 ответа

Лучший ответ
function elegantMethod(number) {
  return Math.pow(10, number);
}
7
Programmer 20 Авг 2018 в 12:38

Спасибо «Программисту» за сообщение о Math.pow
Вот рабочая функция, которая по умолчанию имеет 6 десятичных знаков:

getFixedDecimalValue(inputNum, decimalPlaces = 6) {
  let num = Math.pow(10, decimalPlaces);
  let fixedDecimalValue = (((inputNum *= num) - (inputNum % 1)) / num);
  return fixedDecimalValue;
},
0
GustavMahler 20 Авг 2018 в 16:08

Другим методом Math.pow может быть использование String#repeat:

const nZeros = n => +('1'+'0'.repeat(n));

console.log(nZeros(3));
1
Zenoo 20 Авг 2018 в 12:39
// x = integer
result = "1";

while (x--) result += 0;

Или

result = 1;
while (x--) result *= 10; 
1
Tobiq 20 Авг 2018 в 12:39
51930911