假设您有需要从10-20范围内获取百分比值的方案。即在10处,该值为0.0,在20处为1.0。我需要这个非常简单的算法。我可以使用钳位来解决这个问题,但我想知道是否有一些很好的和简洁的方法来完成这个简单的数学运算?
我无法更改起始值和结束值,因为它们是For循环中的索引,所以当索引为0-10时我需要始终得到0的结果,而从10到20时它应该是0.0 -1.0
答案 0 :(得分:0)
对于startrange< = value< = endrange,公式为:
double fraction = (value-startrange)/(endrange-startrange)
否则分数= 0或1,具体取决于值< startrange或value> endrange
答案 1 :(得分:0)
这是一个简单的线性插值问题,介于10和20之间(我假设您使用的是C语言):
for (int i=0; i<=20; i++)
{
if(i>=10 && i<=20)
{
Result = 0.1*(i-10);
}
else
{
Result = 0.0;
}
}
我希望它有所帮助。