最近看到一道面试题,要求写出 bool, int , float, 指针变量 与 0 的判断相等的表示形式。
这里float类型给出的参考答案是:
if (fabs(data) <= 1e-7)那么问题来了,为什么用 1e-7呢?
通过查阅资料,我们发现,float单精度,在内存中应该是 1 个符号位, 8个指数位 和 23个有效数据位。而 2^23 ~ 10^ 7, 由此得到 1e-7.
版权声明:本文为zhyh1435589631原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。