Данные MongoDB в веб-приложении узла, отображающие несуществующие десятичные знаки - PullRequest
0 голосов
/ 06 мая 2020

Работа над веб-приложением Node с серверной частью MongoDB, которая состоит из статистики игроков. В этом конкретном экземпляре c я сохраняю статистику игрока в виде десятичной дроби и конвертирую ее в процентное соотношение на веб-странице, умножая значение на 100.

Вот HTML / E JS код шаблона, который я отображаю на странице для игроков с процентом 3 очка за один сезон:

<td><%= season.tp * 100 %></td>

Передайте это значение и умножьте его на процент, который должен быть (например) 39,8 и это верно для большинства статистических данных; однако, в частности, для одной точки данных это 39.80000000004 . Это приводит меня к двум вопросам:

  1. Что могло привести к форматированию числа с использованием этих избыточных (и несуществующих) десятичных знаков? Связано ли это с тем, как MongoDB хранит числовые данные?
  2. Что я могу сделать, чтобы предотвратить отображение этих десятичных знаков?

Я встречал другие вопросы, в которых предлагается решение метод JavaScript, который форматирует десятичные разряды, но изменяет тип данных на String. Поскольку целью было бы выполнить другие агрегаты с этими данными, я бы хотел сохранить числовой тип.

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 07 мая 2020

С помощью @YuryTarabanko в комментариях выше я придумал решение, которое на данный момент соответствует моим потребностям:

<td><%= (season.tp * 100).toFixed(1) %></td>

Этот метод toFixed () гарантирует, что все числа будут переданы в app из БД округляются до одного десятичного знака. Следует отметить, что теперь эти значения представляют собой строки, а не числа. Надеюсь, это поможет кому-то в будущем.

...