我的值介于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
我怎样才能做到这一点?
答案 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
请注意:
这就是Math.Min工作的原因。输入,输出,它都是一样的。你只想要两个数字中的最小值。所以说你从0.1
开始。这与0.9
镜像,这两个值都映射回0.1
。