我需要将两个浮点值与一定精度(即小数点后4位)进行比较:
var float1 = 0.0025132741228718345;
var float2 = 0.0025132812393818293;
我看到两个选项:
Math.floor(float1 * 10000) === Math.floor(float2 * 10000); // 25 === 25
...或:
float1.toFixed(4) === float2.toFixed(4) // "0.0025" === "0.0025"
由于操作将每秒发生60次,我问自己:
答案 0 :(得分:0)
Math.round(142.89 * 100) / 100 // 142.89
Math.floor(142.89 * 100) / 100 // 142.88
似乎是基于round函数的toFixed,所以最好改用它
答案 1 :(得分:0)
快速版本:
function FastFloor(f1, f2) {
return ~~(f1 * 10000) === ~~(f2 * 10000);
}