![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
naiqianz
这个作者很懒,什么都没留下…
展开
-
浮点数探寻(一)我们常说的误差从哪里来
$f = 19.58;var_dump(intval($f * 100)); //为啥输出1957上面是一段PHP代码,肉眼可见的1958为什么变成了1957,这就要从计算机是怎么保存浮点数开始说起了。计算机处理小数时要把我们的十进制转化为二进制,而在转化成二进制的过程中,就会不可避免的丧失精度。现代的编程语言基本都用IEEE754标准来定义浮点数的二进制格式,我们来看一下如何把19.58...原创 2019-01-12 16:28:08 · 322 阅读 · 0 评论 -
浮点数探寻(二)怎么做精确的浮点数运算
上文说到了由于很多十进制小数在计算机中用二进制表示,是无尽的。因此会有精度丢失的问题,那么我们如何解决这个问题呢大致有两种解决途径:一、计算机支持二、编程语言支持1、计算机中有一种用十进制存储数字的格式,叫做BCD码,它用四位二进制数来表示一个十进制数字,比如98,用BCD码表示为9 8 1001 1000 这种亦称为8421码(4位二进制数中,第一位...原创 2019-01-14 02:12:34 · 1033 阅读 · 1 评论