刚刚看了别人的博客里关于浮点数的讲解,我用通俗的话总结一下
以浮点数9.0为例子,用二进制表示为1001.0,科学记数公式为-1^
NUM = ((-1)^s) * M * (2^E);//(S表示符号,E表示阶乘,M表示有效数字)
简单来说就是S填0或者1来决定正负,E表示小数点要移位的次数,M表示1.001也就是有效数字,基本就是二进制版的科学记数法。
float类型有一个符号位(S),有8个指数位(E),和23个有效数字位(M)
double类型有一个符号位(S),有11个指数位(E),和52个有效数字位(M)
原文在这,感觉讲的挺不错的。 http://blog.csdn.net/d_leo/article/details/53046721