我正在使用各种JavaScript Math
函数,由于浮点数,这些函数偶尔返回的值大于或小于正确的整数答案0.000000001。我希望为所述函数设置一个if-else
语句,如果该值在整数的某个小范围内,将返回正确的整数答案(请注意,所述整数的非特异性非常重要)。
所以我想问,有没有办法,使用JavaScript来确定从数学函数(例如Math.cbrt()
)返回的值是否在非特定整数的某个边界内?
注意:我尝试在函数中使用Number.EPSILON来计算数字的第x个根
var index = $('#Index').val();
var radicand = $('#Radicand').val();
var powerXroot = Math.pow(radicand,(1/index))+(Number.EPSILON * Math.pow(radicand,(1/index)));
但它并不适用于所有指标。
答案 0 :(得分:1)
您可以使用Math.round()
获取结果的最接近整数。如果此整数在结果的0.000000001范围内,请将结果替换为整数。
比如说,你已经计算了var x = ...
,并且如果它足够接近1则想要使它成为整数。
function roundIfAlmostInteger(x) {
if (Math.abs(x - Math.round(x)) < 0.000000001) {
x = Math.round(x);
}
return x;
}
插图:
x = 2.3 - 0.1 - 0.2; // now x is 1.9999999999999998
x = roundIfAlmostInteger(x); // now x is 2