将百分比映射到0到0.5到0的范围

时间:2016-11-15 00:18:14

标签: javascript math

我的值介于0和1之间,但我需要将此值映射到0到0.5到0的范围内。
例如,0.4将给出0.4,但0.8也会给出0.2。

0.1 = 0.1,
0.2 = 0.2,
0.3 = 0.3,
0.4 = 0.4,
0.5 = 0.5,
0.6 = 0.4, 0.7 = 0.3,
0.8 = 0.2,
0.9 = 0.1

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:10)

如果大于0.5,则从1减去它。1 - 0.9 = 0.1要删除条件,请使用Math.Min(x, 1 - x)。这是因为:

0.1 = 0.1,
0.2 = 0.2,
0.3 = 0.3,
0.4 = 0.4,
0.5 = 0.5,
0.6 = 0.4,
0.7 = 0.3,
0.8 = 0.2,
0.9 = 0.1

请注意:

  • 列表从[0,1]约0.5
  • 镜像
  • 每行有两个数字,超过中间点的每一行都增加到1.

这就是Math.Min工作的原因。输入,输出,它都是一样的。你只想要两个数字中的最小值。所以说你从0.1开始。这与0.9镜像,这两个值都映射回0.1