<?php
$d =2.99-1-1.99;
echo $d;
?>
输出结果 为什么不是 0 呢 ? 是 2.22044604925E-16
怎样才能输出0 呢?
我的做法是 每个数 乘以100 然后 运算完 除以 100
$d =2.99-1-1.99;
echo $d;
?>
输出结果 为什么不是 0 呢 ? 是 2.22044604925E-16
怎样才能输出0 呢?
我的做法是 每个数 乘以100 然后 运算完 除以 100
1
Ricepig Apr 15, 2014
基础知识啊。。。
判断浮点数是不是等于0,不是用$d == 0,而是abs($d) < EPS,这个EPS是个很小的值。 |
2
young Apr 15, 2014
|
3
mahone3297 Apr 15, 2014
计算机的问题,跟php无关。。。
|
4
jsonline Apr 15, 2014 via Android
楼主,计算机很傻的
|
5
zog Apr 15, 2014
计算机存储都是2进制,十进制浮点数有时候无法完全对应二进制。所以经常会出现这种情况。
|
6
zog Apr 15, 2014
python下控制台下输入2.3 + 2.4,结果是:4.69999999999999999
|
7
txlty Apr 15, 2014
直接贴到地址栏:
javascript:alert(16.9*100); |