float 変数を 0 から 100 までの値の整数に変換しようとしています。float は常に正です。対応する整数値は、32 ビット float の最大値と比較した float 値のサイズを反映する必要があります。たとえば、0.0 は 0 に変換され、3.402823466 E + 38 は 100 に変換され、その他はその間にあります。
ここに私がこれまでに持っているものがありますが、ゼロ以外の入力の出力として -1 を取得し続けます。
int convFloat(float x){
int y;
y = (int) (x/3.4e38) * 100;
return y;
}
ここで何が間違っていますか?