【发布时间】:2010-07-26 04:49:44
【问题描述】:
我必须检查一个浮点变量以确定特定变量的存在。理想情况下,它应该是一个 bool 值或至少一个 int。由于接口约束和遗留代码,我无法将数据类型更改为 bool。所以如果我要进行检查,我可以直接按照下面的示例代码进行检查吗:
void check(float f)
{
if (!f)
printf ("Zero val!\n");
else
printf ("Value exists!\n");
}
考虑到值是如何存储在浮点变量中的,这会是万无一失的还是有更好的方法来做到这一点。将其转换为空头并检查是不可行的,因为: 如果值为“1”,则存储为 0.9999998;将其转换为短路会导致错误的“0”。
P.S 代码恰好出现在 Objective C 文件中,但是是 C 格式。
【问题讨论】:
-
这里有一个提示:0 仍然是一个浮点值。 :)
-
这个问题骗了我!!感谢罗伯特的提示。
标签: c objective-c