预期结果在1和0之间的除法总是给出0

时间:2013-01-17 01:32:34

标签: objective-c math integer division

  

可能重复:
  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 MyProject [1798:c07] 1.000000 2.000000 0.500000 0.000000 0.500000

我不知道发生了什么。

1 个答案:

答案 0 :(得分:6)

你将整数除以整数。结果将是一个整数,其余部分被省略:

1 / 2 = 0     The remainder (0.5) is omitted.

只有在完成除法后,您的结果才会传递到float d变量。

编辑:是的,我忘了提出一个解决方案:确保至少有一个操作数是浮点数。

1.0 / 2 = 0.5    

1 / 2.0 = 0.5