好的,这是不可能的,我真的不知道该怎么问。我正在开发一个iPhone应用程序,有一次我需要使用NSOperation来完成一些后台任务。问题是,即使是最简单的浮点计算,它也会在点之后进行修整(例如1/2 = 1.0)。最初我认为这是一个并发问题,但后来我尝试了:
NSLog(@"%f", 1/2);
它记录了1.00000。这怎么可能呢?当然我做错了什么!
任何想法?
答案 0 :(得分:1)
您正在划分两个整数,然后向上舍入为1。
如果要划分两个浮点变量,首先将值保存到浮点并将其除以或在值的末尾写入.0f
,以告诉编译器您正在使用浮点数。例如:1.0f / 2.0f
只需编写注释中建议的1.0 / 2.0
将导致两个双精度的除法,因为编译器会将值默认为加倍。