Objective C数据类型/ Math返回0.0000

时间:2012-06-06 13:08:08

标签: ios objective-c cocoa-touch

  

可能重复:
  C problem - division result is always zero

我试图了解客观C的工作原理,有人能解释我做错了什么吗?

double hr = ((1/360) * 300);
NSLog(@"%f", hr);

返回:

2012-06-06 14:07:02.511 Clock2[3385:f803] 0.000000

提前致谢

1 个答案:

答案 0 :(得分:5)

当LHS和RHS都是整数时,C和相关语言(如C ++和Objective C)使用整数(截断)除法,因此1/360 = 0.对于浮点运算,尝试养成使用浮点文字的习惯,即使是整数,也就是改变:

double hr = ((1/360) * 300);

为:

double hr = ((1.0/360.0) * 300.0);