给if条件赋值不起作用

4

我有一个变量,已经被赋值为12.90。如果这个变量的值是12.90,则需要执行if语句,否则执行else语句。

if (appDelegate.p_ClinInf_Yes_NV_InModel==12.90) {

}

else{

}

但它会在每个else语句执行


在你的if条件语句之前尝试使用NSLog输出appDelegate.p_ClinInf_Yes_NV_InModel的值。 - Rushi
NSLog@(@"%f",appDelegate.p_ClinInf_Yes_NV_InModel); ??? - iPatel
比较两个浮点数的相等性是不推荐的?appDelegate.p_ClinInf_Yes_NV_InModel 的数据类型是什么? - Inder Kumar Rathore
appDelegate.p_ClinInf_Yes_NV_InModel 的数据类型是浮点数。 - Developer IOS
在 NSLog 中显示的是 12.90。 - Developer IOS
1个回答

7

试试这个

if (appDelegate.p_ClinInf_Yes_NV_InModel == 12.90F) {

}
else{ 

}

由于浮点数和双精度浮点数的精度不同,将它们用于比较相等性时可能会得到意外的结果。


3
@iPatel和其他人 - 请查看评论方面的FAQ:http://stackoverflow.com/privileges/comment。注意不应该发布哪些类型的评论(尤其是恭维的评论)。只需点赞就可以了,祝你愉快。 - rmaddy
是的,@rmaddy 绝对正确。这就是我没有回复“谢谢 :)”的原因。你们的点赞是对我的最好奖励,也有益于 SO 社区。 - Inder Kumar Rathore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接