我的程序(使用Math.round(在结果四舍五入时不显示第二个小数(例如:1.10,1.30(,而当结果不舍入时显示是(例如:1.24,2.47(。如何改变这一点?
function calcAmount2() {
var userAmount2 = document.getElementById("amount2").value;
if (userAmount2 = Number(amount2.value)) {
document.getElementById("marginAmount2").textContent =
Math.round(userAmount2 * 3) / 100 + "€";
}
}
(预期(1.10、1.30 而不是(实际(1.1 1.3
(Math.round(userAmount2 * 3) / 100).toFixed(2) + "€";
toFixed 将数字设置为始终有 2 位小数。
我相信这是格式数字的副本,始终显示 2 位小数
您想使用看起来.toFixed(2)
,但请注意结果将是String
。
我不确定你的答案必须有多具体,但我建议你改用这个:
const res = Number(Math.round(userAmount2 +'e2')+'e-2');
这是因为 toFixed 对于某些值(如 21.005(存在舍入问题。
让我在这里向你证明一下:
console.log(Number(Math.round(20.005 +'e2')+'e-2'));
console.log(20.005.toFixed(2));