用零除时避免javascript无限
我想找出增加或减少的百分比,如果第二个数字为零,那么第二个语句就可以工作,但是我的test3失败了用零除时避免javascript无限,javascript,math,Javascript,Math,我想找出增加或减少的百分比,如果第二个数字为零,那么第二个语句就可以工作,但是我的test3失败了 const test = Math.abs(((120 - 0) / 0) * 100).toFixed(1) + '%' const test2 = Math.abs(((50 - 25) / 25) * 100).toFixed(1) + '%' const test3 = Math.abs(((10000 - 0) / 0) * 100).toFixed(1) + '%' console.
const test = Math.abs(((120 - 0) / 0) * 100).toFixed(1) + '%'
const test2 = Math.abs(((50 - 25) / 25) * 100).toFixed(1) + '%'
const test3 = Math.abs(((10000 - 0) / 0) * 100).toFixed(1) + '%'
console.log('test:', test)
console.log('test2:', test2)
console.log('test3', test3)
如何解决这个问题?您可以假设任何事物的0%为0,因此:
功能测试NUM1、num2、除法器{
var输出=0;
中频分配器{
输出=Math.absnum1-num2/除法器*100.toFixed1;
}
返回输出+'%';
}
日志'test:',test120,0,0
日志'test2:',test50,25,25
日志'test3',test10000,0,0,但是我的test3失败了,所以你说测试正常,只是test3失败了?你所有的测试都有相同的问题,而不仅仅是3。不要除以0。在除以第二个数字之前检查它是否为零。对于第三种情况,这将返回0。我认为这个公式是用来表示某个增益因子的,在这种情况下,它应该是一个很大的量,但是由于这个公式和零,它变成无穷大而不是某个数。问题在于公式,而不是你的代码。@MohitBhardwaj好吧,我不是在修正这个公式,因为OP应该比我更清楚。