我试图进行计算,但我没有得到正确的结果并且难以理解原因。
计算
float Signal = ((20 - 0) / (20 - 4)) * (F5 - 4) + 0;
F5
= 12并被声明为" Float"型
通过计算器运行时,您最终会得到以下结果:
然而,当通过Android代码运行时,我得到8的结果。
为什么这样,我想了解发生了什么
答案 0 :(得分:2)
使用整数运算计算第一项((20 - 0) / (20 - 4))
,给出值1
。无论8
的类型如何,这都会产生最终结果F5
。如果希望它以浮点形式发生,请使用浮点常量
float Signal = ((20f - 0f) / (20f - 4f)) * (F5 - 4f) + 0f;
从技术上讲,由于数字提升,你不需要所有的常量都是浮点数,但是那些读取你想要的代码的人会更加清楚。