我想把两个数字四舍五入,然后把它们相加。
var a = 12.24;Var b = 12.27;
我想让它们四舍五入到12.5,所以当我把这两个数字相加时,结果将是12.5 + 12.5 = 25
与此答案相同,使用不同的乘数/除数。在这个问题中,他们想要最近的10;在这个问题中,您需要最接近的一半。所以不用
var num = 12.24;
num = Math.ceil(num * 10) / 10;
alert(num); // 12.24
…我们使用
var num = 12.24;
num = Math.ceil(num * 2) / 2;
alert(num); // 12.5
使用
Math.round(a / 0.5) * 0.5;
要将四舍五入到最接近的一半,使用
Math.ceil(a / 0.5) * 0.5;
但请注意两件事:
-
浮点运算仍然可能导致小数四舍五入的数字关闭。(但请注意,半整数可以精确地表示为2的52次幂的浮点数)。
-
您可以通过将数字相加然后四舍五入来获得结果。这样数值上更稳定
您可以尝试以下操作。
var a = 12.24;
console.log(roundHalf(a)); // 12.5
var b = 12.27;
console.log(roundHalf(b)); // 12.5
var result = roundHalf(a) + roundHalf(b);
console.log(result); // 25
function roundHalf(num){
return Math.ceil(num * 2) / 2;
}