可能的重复:
C 中整数除法的行为是什么? https://stackoverflow.com/questions/3602827/what-is-the-behavior-of-integer-division-in-c
当我用应该在 1 和 0 之间的答案进行除法计算时,它总是返回 0。
尝试这个:
float a = 1;
float b = 2;
float c = a / b; //variable divide by variable gives 0.5 as it should
float d = 1 / 2; //number divide by number gives 0
float e = 4 / 2;
NSLog(@"%f %f %f %f %f", a,b,c, d, e);
我从控制台得到这个:
2013-01-17 14:24:17.512 我的项目[1798:c07] 1.000000 2.000000 0.500000 0.000000 0.500000
我不知道发生了什么事。
您正在将整数除以整数。结果将是一个整数,余数被省略:
1 / 2 = 0 The remainder (0.5) is omitted.
只有在除法完成后,你的结果才会传递到你的float d
多变的。
编辑:是的,我忘了提出一个解决方案:确保至少一个操作数是浮点数。
1.0 / 2 = 0.5
1 / 2.0 = 0.5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)