如何在段落中四舍五入到最接近的小数?



例如,我有:

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

不适用于我的段落。我也尝试了数学轮(2(;和其他方法,但它不起作用。我仍然是Javascript的新手,所以我不知道我在做什么。它给出未捕获的类型错误。我需要将其保留在我无法执行 var number1-1000 1000 次的段落中。

.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>

当然不会

"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>

您可以尝试用/n(换行符(拆分 #myp 的内容,然后循环浏览结果,验证每个项目都是整数,转换为数字然后向下舍入。

这是我的思考过程,当我到达我的电脑时,我会尝试编写一个代码示例。

最新更新