【发布时间】:2012-04-23 07:40:46
【问题描述】:
我正在尝试将浮点变量转换为 0 到 100 之间的整数值。浮点数始终为正。相应的整数值应反映浮点值与 32 位浮点数最大值相比的大小,例如0.0 转换为 0 和 3.402823466 E + 38 转换为 100,以及介于两者之间的任何其他值。
这是我目前所拥有的,但我一直得到 -1 作为任何非零输入的输出。
int convFloat(float x){
int y;
y = (int) (x/3.4e38) * 100;
return y;
}
我在这里做错了什么?
【问题讨论】:
-
你需要除以
3.4e36。这样就不需要乘以 100,也不会冒中间结果的风险。
标签: c floating-point integer scale