我有以下计算:
float value = MY_VALUE;
float percentage = (value - MIN)/(MAX - MIN);
if (percentage < 0)
percentage = 0;
if (percentage > 1)
percentage = 1
我只是想知道 Objective-C 或 C 中是否存在某种方法来帮助实现这一点,例如一种将“值”浮点数舍入到 MIN 和 MAX 边界之间的方法。
最佳答案
不。
另一方面,您可能应该更新您的代码,以便防止可能的除以零:
float den = (value - MIN);
float num = (MAX - MIN);
float percentage;
if(den) {
percentage = num / den;
if (percentage < 0.0f ) {
percentage = 0.0f;
} else if (percentage > 1.0f) {
percentage = 1.0f;
} else {
printf("Percentage: %3.2f",percentage);
}
} else {
percentage = 0.0f;
printf("DIVIDE BY ZERO ERROR!");
}
还有,小心。甲骨文就一段非常相似的代码起诉谷歌。您可能需要重新考虑将其公开发布:
http://developers.slashdot.org/story/12/05/16/1612228/judge-to-oracle-a-high-schooler-could-write-rangecheck
关于objective-c - 计算两个边界之间值的百分比的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10728464/