Math.min/max.apply将值设置为新范围的百分比

8DK*_*8DK 1 javascript math range

我有一个数组值列表

var v=[0.009865,0.009866,0.009309,0.009831,0.009919,0.009965,0.009806,0.009509,0.009731,0.009888];
Run Code Online (Sandbox Code Playgroud)

我计算两者之间的最小值,最大值和差值以得出范围

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});
Run Code Online (Sandbox Code Playgroud)

console.dir显示

max: 0.00009965
min: 0.00009308999999999999
dif: 0.000006560000000000005
Run Code Online (Sandbox Code Playgroud)

然后我遍历每个值,试图将它们转换为范围内的百分比

(通过找出当前值大于min的大小,将答案除以dif并将结果乘以100得到百分比)

for (var i=0;i<v.length;i++){
    v[i]=((v[i]-min)/dif)*100;
    console.log(v[i]);
    }
Run Code Online (Sandbox Code Playgroud)

console.log显示我真的不希望看到的值(预期在0-100之间)

148962.04268292672
148977.28658536574
140486.43292682915
148443.74999999985
149785.21341463405
150486.43292682915
148062.65243902427
143535.21341463405
146919.35975609746
149312.65243902427
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我对数学的参考:https://math.stackexchange.com/questions/51509/how-to-calculate-percentage-of-value-inside-arbitrary-range

Bar*_*mar 5

不要被划分100设置时maxmin:

var max=Math.max.apply(this,v);
var min=Math.min.apply(this,v);
Run Code Online (Sandbox Code Playgroud)

输出:

84.7560975609757
84.90853658536585
0
79.57317073170726
92.9878048780489
100
75.76219512195132
30.487804878048845
64.32926829268297
88.26219512195112 
Run Code Online (Sandbox Code Playgroud)