Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何划分一组数字,使其始终在0到100之间?_Javascript_Math - Fatal编程技术网

Javascript 如何划分一组数字,使其始终在0到100之间?

Javascript 如何划分一组数字,使其始终在0到100之间?,javascript,math,Javascript,Math,我有一组数字,它们的最大值可以是千,我希望它在0到100之间。以便在实际中使用它 控制台输出 Event "stabilized" triggered Object {iterations: 0} Event "stabilizationProgress" triggered Object {iterations: 50, total: 2000} Event "stabilizationProgress" triggered Object {iterations: 100, tot

我有一组数字,它们的最大值可以是千,我希望它在0到100之间。以便在实际中使用它

控制台输出

 Event "stabilized" triggered
 Object {iterations: 0}
 Event "stabilizationProgress" triggered
 Object {iterations: 50, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 100, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 150, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 200, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 250, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: , total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: , total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 400, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 450, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 500, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 550, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 600, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 650, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 700, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 750, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 800, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 850, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 900, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 950, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1000, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1050, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1100, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1150, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1200, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1250, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1400, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1450, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1500, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1550, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1600, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1650, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1700, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1750, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1800, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1850, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1900, total: 2000}
 Event "stabilizationProgress" triggered
 Object {iterations: 1950, total: 2000}
 Event "stabilizationIterationsDone" triggered
 Event "stabilized" triggered
 Object {iterations: 2001}

在数学上,将每个数字除以最大值,然后乘以100。

在数学上,解决方案似乎很简单:取数值的百分比,你的计算几乎是正确的,只需添加两个参数:

Math.round((arguments[0].iterations / arguments[0].total)*100);
因此,假设你有这样的情况:

Event "stabilizationProgress" triggered
 Object {iterations: 900, total: 2000}
计算值应为:

Math.round((arguments[0].iterations / arguments[0].total)*100);
Math.round((900 / 2000)*100);
Math.round((9 / 20)*100);
Math.round((0.45)*100);
=45
您最初的计算结果是:

Math.round(arguments[0].iterations / arguments[0].total)*100;
Math.round(900 / 2000)*100
Math.round(0.45)*100
原因:
1) Math.round()方法将为Math.round(0.45){即值<0.5但大于0},这就是为什么得到:0*100=0。

2) 对于像Math.round(0.75){value>0.5但<1}这样的值,这个方法将返回1,这就是为什么得到:1*100=100

本质上,你的公式只会给你两个值0或100。有道理吗


参考:

谢谢我让它运行
Math.round((参数[0]。迭代次数/参数[0]。总计)*100)
。对于其他人,Kailas回答中解释了解决方案谢谢,但Wheeldog的回答帮助我首先解决了问题,正如您在解决方案中解释的那样。
Math.round(arguments[0].iterations / arguments[0].total)*100;
Math.round(900 / 2000)*100
Math.round(0.45)*100