使用NSOperation后,浮点数会在点之后进行修剪?

时间:2011-02-25 14:30:22

标签: iphone objective-c

好的,这是不可能的,我真的不知道该怎么问。我正在开发一个iPhone应用程序,有一次我需要使用NSOperation来完成一些后台任务。问题是,即使是最简单的浮点计算,它也会在点之后进行修整(例如1/2 = 1.0)。最初我认为这是一个并发问题,但后来我尝试了:

NSLog(@"%f", 1/2);

它记录了1.00000。这怎么可能呢?当然我做错了什么!

任何想法?

1 个答案:

答案 0 :(得分:1)

您正在划分两个整数,然后向上舍入为1。 如果要划分两个浮点变量,首先将值保存到浮点并将其除以或在值的末尾写入.0f,以告诉编译器您正在使用浮点数。例如:1.0f / 2.0f

只需编写注释中建议的1.0 / 2.0将导致两个双精度的除法,因为编译器会将值默认为加倍。