Как преобразовать целое число с n десятичными знаками в число с плавающей запятой

#javascript

Вопрос:

У меня есть это целое число

7839486009458047182

У меня есть переменная, которая говорит мне, что это число должно иметь n знаков после запятой (в данном случае 18).

Как я могу изменить его на 7,839486009458047182

(Если у React есть такой метод, который я мог бы использовать в шаблоне, это еще лучше!)

Комментарии:

1. просто разделите это на 10 ** thatnumber ? (где ** синтаксис JS для «в полной мере»)

Ответ №1:

Если вас не слишком беспокоит точность, вы можете просто разделить целое 10 ** decimals число , например, на:

 console.log(7839486009458047182 / (10 ** 18));
// ^ 7.839486009458047 

Имейте в виду, что поплавки обладают ограниченной точностью. Если точность является ключом, сохраните ее как целое число (или bigint). Если это просто для целей отображения, то небольшая неточность не должна быть проблемой.

Ответ №2:

Вы можете разделить целое число на 10, возведенное в число знаков после запятой.

 let integer = 7839486009458047182

function setDP(number, decimalPlaces) {
  return number / 10 ** decimalPlaces
}

console.log(setDP(integer, 18))