摘自: https://zhuanlan.zhihu.com/p/68801766
浮点数的二进制表示
参考:
https://www.cnblogs.com/zuoxiaolong/p/computer11.html
https://www.zengdongwu.com/article1.html
http://www.ruanyifeng.com/blog/2010/06/ieee_floating-point_representation.html#comment-text
十进制小数转二进制的方法:
1)5.34375整数位为5,转二进制为101;
2)小数位0.34375 * 2 = 0.6875,整数位为0,结果101.0;
3)继续0.6875 * 2 = 1.375,整数位为1,结果101.01;
4)去掉整数继续乘2,0.375 * 2 = 0.75,结果101.010;
5)循环到没有小数为止……;
6)最终结果:101.01011。
看到这里,就明白了为啥php中浮点数精度会丢失的问题。
顺便回忆下:负数的二进制表示: https://www.jianshu.com/p/6c518e7b4690