Objective-C中的奇怪错误,具有基本的浮点计算

1 objective-c

我现在有可能愚蠢,但检查一下.我有一个浮动:

float wordTime=46.81; // I get it after some calculations
Run Code Online (Sandbox Code Playgroud)

然后我记录了这个:

NSLog(@"1:%f", wordTime);
NSLog(@"2:%f", (3/2)*wordTime);
NSLog(@"3:%f", (5/2)*wordTime);
NSLog(@"4:%f", (7/2)*wordTime);
Run Code Online (Sandbox Code Playgroud)

我明白了:(日志编号2有问题)

 46.81
 46.81 // weird
 93.8
140.7
Run Code Online (Sandbox Code Playgroud)

然后,我已经改变了3/21.5和我46,70,93,和140缺少什么我在这里?

zou*_*oul 6

3/2被解释为(int)3/2并因此评估为1.您可以明确地写出类型3.0f/2.0f,这应该给出您期望的结果(就像显式地将整个表达式转换为float).

  • @Rant你不是傻瓜.你还没有完全阅读C教程:)那样做.(一般建议:在接触Obejctive-C/OS X/iOS编程之前尝试掌握C语言.) (3认同)
  • 每个人都被这一次咬过.至少一次,那就是:) (3认同)