我正在做一些非常愚蠢的事情,我没有看到它。
我有一个带有方法的对象文档:
-(float) currentOrient
{
return 50.5;
}
在另一个对象中,我打电话给:
-(void) showPage
{
float rot2=0;
rot2 = [doc currentOrient] ;
NSLog(@"SP rotation is %.2f", rot2);
}
然而,输出是:
SP rotation is 1112145920.000000
不,有一个问题是“为什么%2f格式不正确?”但更令人困惑的问题是“这个数字来自哪里?”是的,我已经使用调试器完成了它,腐烂的值从它开始的垃圾变化。这个数字似乎是一致的。
显然,一些非常愚蠢的事情正在发生......答案 0 :(得分:1)
我可以回答第一个问题:
为什么%2f格式不正确?
因为它应该%1.2f
舍入到小数点后两位(我相信这是你想要实现的目标?)
猜猜第二个:
你在代码中有一个名为rot的属性吗?除此之外...... 耸肩 ......我不知道 - 我假设你已经简化了在SO上发布的示例,你有没有拿出其他可能相关的代码?根据您提供的信息,应该的一切都很难找。
旁注:当我点击这样的bug时,我会做一些物理上的事情。通常当我回来时我的脑袋很清楚,我立即发现了问题。您可能也想尝试一下! :D
答案 1 :(得分:1)
听起来showPage
方法不知道currentOrient
的正确返回类型,因此它将返回的值解释为int并将该无意义的int转换为float。你收到任何警告吗?您确定要正确导入currentOrient
的标头吗? currentOrient
方法是否正确声明了?