Why does dividing a float by an integer return 0.0?

前端 未结 6 1724
不思量自难忘°
不思量自难忘° 2020-11-28 13:07

So if I have a range of numbers \'0 - 1024\' and I want to bring them into \'0 - 255\', the maths would dictate to divide the input by the maximum the input will be (1024 in

6条回答
  •  鱼传尺愫
    2020-11-28 14:03

    You should auto-cast n to float by means of a multiplication FIRST, otherwise you're doing an integer operation and then casting the result, instead of doing the operation between floats.

    float scale;
    scale = n * 1.0 / 1024 * 255;
    

提交回复
热议问题