Как округлить с точностью до десятичного знака в абзаце? - PullRequest
0 голосов
/ 10 февраля 2020

Например, у меня есть:

<p id = 'myp'>
I brought it for 2.545
I sold it for 1.245
I returned it for 5.4099
<p/>
<p id = 'myresult'> <p/>

Ответ должен быть:

I brought it for 2.5
I sold it for 1.2
I returned it for 5.4

Сохраняйте слова в абзаце, округляя числа.

    myp.toFixed(2); 
    myparagraph = document.getElementByid('myp');
    myparagraph.toFixed(2); 

Не работает для моего абзаца. Я также попробовал MathRound (2); и другие методы, но это не работает. Я все еще новичок в Javascript, поэтому я не знаю, что я делаю. Это дает необработанную ошибку типа. Мне нужно сохранить его в абзаце, который я не могу сделать 1000-1000 раз.

Ответы [ 3 ]

2 голосов
/ 10 февраля 2020

.toFixed() - это метод числовых переменных, поэтому сначала нужно получить числа. Кроме того, округление до одной десятичной запятой требует .toFixed(1), а не .toFixed(2).

. Вы можете сделать что-то вроде этого:

const mypEl = document.getElementById('myp');
const myresultEl = document.getElementById('myresult');
const values = mypEl.innerHTML.split(/\s/g).filter(Boolean);
values.forEach(value => {
  myresultEl.innerHTML += Number(value).toFixed(1) + '\n';
});
<p id='myp'>
  2.545
  1.245
  5.4099
</p>
<p id='myresult'>
</p>
0 голосов
/ 10 февраля 2020

Вы можете попробовать разделить содержимое #myp на / n (символ новой строки), затем l oop по результатам, проверить, что каждый элемент является целым числом, преобразовать в число, а затем округлить в меньшую сторону.

Это мой мыслительный процесс, я попытаюсь написать пример кода, когда доберусь до своего p c.

0 голосов
/ 10 февраля 2020

Конечно, это не будет

"myp" - это элемент dom, а не числовой тип

Вместо этого вы можете использовать переменные и добавлять их в DOM следующим образом

<html>
<head>
  <title>sample</title>
</head>
<body>


 <p id="myp"></div>


 <script>
   var number1 = 2.545;
   var number2 = 6.556;

   document.getElementById('myp').innerHTML += number1.toFixed(2);
   document.getElementById('myp').innerHTML += "<br>"; 
   document.getElementById('myp').innerHTML += number2.toFixed(2);
</script>
</body>

</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...