如何在JavaScript中正确比较数字



我想比较两个值,根据这两个值来获得图例的颜色。但不幸的是,我不能使用ceil、floor或round值,因为这会影响我的结果。

我有下面的颜色表,第一个值为点,其余3个值为RGB值。

基本上我从后端得到的点可以是0.4607441262895224、0.5500956769649571等等。我需要将该点与颜色表中的第一个值进行比较,并给出相应的颜色。但我在比较中遇到了问题,因为目前我已经给出了Fixed(2(,但不推荐使用。

"colors": [
[ 0.00, 255, 13, 186 ],
[ 0.25, 254, 4, 135 ],
[ 0.50, 73, 255, 35 ],
[ 0.75, 185, 116, 255 ],
[ 1.00, 32, 50, 255 ]
]
// main logic
const test = arraySet.find((ele) => {
// point is dynamic
const point = 0.388920938
// I cannot use toFixed(2) here, which need to be changed
// ele[0] is the first value in array 0.00, 0.25, 0.50 and so on
return point.toFixed(2) == ele[0].toFixed(2);}
);

我想你想要的线路上的东西

Math.abs(point-ele[0]) < 0.01 

0.01替换为与您的数据相关的阈值,例如,10^(-6(的1e-6

ToFixed也将被四舍五入

const toFixed=(num)=>Number(num.toString().match(/^d+(?:.d{0,2})?/));

试着这样做

return point.toString().substr(0, ele.toString().length) == ele;

相关内容

  • 没有找到相关文章

最新更新