0

可能重复:
C 问题 - 除法结果始终为零

我试图弄清楚客观C的工作原理,谁能解释我做错了什么?

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

返回:

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

提前致谢

4

1 回答 1

5

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

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

到:

double hr = ((1.0/360.0) * 300.0);
于 2012-06-06T13:08:59.147 回答