从如何判断浮点数是否等于0说起——浮点数的机器级表示
题目中针对的0,对于浮点类型,具体指的是0.0,自然对于指针类型就是NULL,对于整型就是0,一些常见笔试面试题中常出现,不要较真,十分欢迎提出改进意见。
本文很大程度上收到林锐博士一些文章的启发,lz也是在大学期间读过,感觉收益良多,但是当时林锐也是说了结论,lz也只是知其然,而不知其所以然,为什么要那样写?为什么要这样用?往往一深究起来就稀里糊涂了,现在有幸还是继续读书,我发现了很多问题理解的还不透彻,亡羊补牢。
比如:有int d; int *d; bool d; double d;几个变量,经过一系列的计算之后,那么去判断这个四个变量是否等于0该怎么做?
很多菜鸟或者编程功底不扎实的就会出错,一些烂书,尤其国内的一部分大学教材,教授编程语言的书籍,比如谭xx的,都存在很多不规范的误导,甚至是错误,这样的地方简直太多了,并不是程序出了想要的正确结果,就算完事儿了。
一些类似我这样的读过几本经典书籍,看过一些经典技术手册,码过若干行的代码等等,就会说这还不简单,会类似的写出:
1 void isZero(double d) 2 { 3 if (d >= -DBL_EPSILON && d <= DBL_EPSILON) 4 { 5 //d是0处理 6 } 7 } 8 9 void isZero(int d) 10 { 11 if (0 == d) 12 { 13 //d是0处理 14 } 15 } 16 17 void isZero(int *d)