【发布时间】:2014-07-27 12:58:46
【问题描述】:
我有一个值的数组列表
var v=[0.009865,0.009866,0.009309,0.009831,0.009919,0.009965,0.009806,0.009509,0.009731,0.009888];
我计算两者之间的最小值、最大值和差值来确定范围
var max=Math.max.apply(this,v)/100;
var min=Math.min.apply(this,v)/100;
var dif=max-min;
console.dir({'max':max,'min':min,'dif':dif});
console.dir 显示
max: 0.00009965
min: 0.00009308999999999999
dif: 0.000006560000000000005
然后我循环遍历每个值,尝试将它们转换为范围内的百分比
(通过找出当前值比最小值大多少,将答案除以差异并将结果乘以 100 得到百分比)
for (var i=0;i<v.length;i++){
v[i]=((v[i]-min)/dif)*100;
console.log(v[i]);
}
console.log 显示我真的不希望看到的值(预计在 0-100 之间)
148962.04268292672
148977.28658536574
140486.43292682915
148443.74999999985
149785.21341463405
150486.43292682915
148062.65243902427
143535.21341463405
146919.35975609746
149312.65243902427
我做错了什么?
【问题讨论】:
-
你能在一个功能中提供所有功能吗
-
这与我的问题无关
-
设置
max和min为什么要除以100?这就是问题所在。 -
为什么你的循环从
01而不是零开始? -
@T.J.Crowder:这可能是错误的(应该是
Math),但这无关紧要,因为min和max不在乎
标签: javascript math range