假设我的公差为0.01(表示任何低于此值的值都应四舍五入)
我有一个数字1.009,该数字应四舍五入为1.0,因为它小于公差,但应保留数字1.01,同样应保留0.99,但将0.91四舍五入为1.00
我希望此逻辑适用于所有整数,如果不可能,则使用数字数组。
这是我尝试仅对整数1.00进行的操作
https://jsbin.com/yuyozopeno/1/edit?js,console,output
function tolerate(num, acceptableTolerance) {
var difference = Math.abs(1.00 - num);
if (difference <= acceptableTolerance) {
num = 1.00;
}
return num;
}
console.log(tolerate(1.01, 0.01))
console.log(tolerate(1.001, 0.01))
console.log(tolerate(0.99, 0.01))
console.log(tolerate(0.9991, 0.01))
这种数学运算还有更好的名称吗?
答案 0 :(得分:2)
这应该为您做。您只是错过了找到最接近的整数的一般情况,幸运的是javascript有一个不错的功能为您Math.round
function tolerate(num, acceptableTolerance) {
var nearestRoundNumber = Math.round(num);
var difference = Math.abs(nearestRoundNumber - num);
if (difference <= acceptableTolerance) {
num = nearestRoundNumber;
}
return num;
}
console.log(tolerate(1.01, 0.01))
console.log(tolerate(1.001, 0.01))
console.log(tolerate(0.99, 0.01))
console.log(tolerate(0.9991, 0.01))