百分比计算在0.5左右(0.4 = -20%和0.6 = + 20%)

时间:2010-04-12 18:09:14

标签: c++ math

我处于一个奇怪的情况,我的值为0.5,我希望将0.5到1的值转换为百分比,将0.5到0的值转换为负百分比。

如标题所述,0.4应为-20%,0.3应为-40%,0.1应为-80%。

我确信这是一个简单的问题,但我的想法只是拒绝弄明白:)

有人可以帮忙吗? :)

3 个答案:

答案 0 :(得分:10)

我们想要做的是将范围(0; 1)缩放到(-100; 100):

percentage = (value - 0.5) * 200;

减法转换值使其在范围(-0.5; 0.5)内,并且乘法将其缩放到(-100; 100)的范围。

答案 1 :(得分:1)

percent = ((value - 0.5) / 0.5) * 100

这将从-100到100生成。您想要从给定值中减去零值(0.5),并除以应该给出100%的范围(在您的示例中也是0.5)。然后乘以100转换为百分比。

答案 2 :(得分:0)

将其标准化,然后就完成了:

// Assuming x is in the range (0,1)
x *= 2.0; // x is in the range (0,2)
x -= 1.0; // (-1,1)
x *= 100; // (-100,100)