0

我制作了一个简单的 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>

4

2 回答 2

2

您需要将最终结果限制为小数点后 2 位:

(document.getElementById('multiplyAmount').innerHTML * roundedMultiplier).toFixed(2);
于 2016-05-23T20:04:08.383 回答
1

将该 toFixed方法应用于最终结果,以消除您看到的放大的浮点误差:

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而不是。innerHTMLHTML

于 2016-05-23T20:07:48.097 回答