我制作了一个简单的javascript,它会增加一个数量并显示结果。但是,我想将结果限制为2位小数。我尝试过使用toFixed,但这似乎不起作用。
有谁知道如何使这项工作?
function MultiplyTheAmount() {
var multiplier = 0.75;
var roundedMultiplier = multiplier.toFixed(2);
document.getElementById('multiplyResult').innerHTML = document.getElementById('multiplyAmount').innerHTML * roundedMultiplier;
};
MultiplyTheAmount();
<ul style="list-style:none;">
<li>Amount:</li>
<li id="multiplyAmount">119.99</li>
<li><br/></li>
<li>Multiply by:</li>
<li>0.75</li>
<li><br/></li>
<li>Result:</li>
<li id="multiplyResult"></li>
</ul>
答案 0 :(得分:2)
您需要将最终结果限制为2位小数:
(document.getElementById('multiplyAmount').innerHTML * roundedMultiplier).toFixed(2);
答案 1 :(得分:1)
将toFixed
方法应用于最终结果,以消除您看到的放大floating point inaccuracy:
function MultiplyTheAmount() {
var multiplier = 0.75;
var roundedMultiplier = multiplier.toFixed(2);
document.getElementById('multiplyResult').textContent = (
+document.getElementById('multiplyAmount').textContent * roundedMultiplier
).toFixed(2);
};
MultiplyTheAmount();
<ul style="list-style:none;">
<li>Amount:</li>
<li id="multiplyAmount">119.99</li>
<li><br/></li>
<li>Multiply by:</li>
<li>0.75</li>
<li><br/></li>
<li>Result:</li>
<li id="multiplyResult"></li>
</ul>
与问题无关,但我建议在不处理textContent
内容时使用innerHTML
代替HTML
。