<?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
|
RicepigApr 15, 2014
1
基础知识啊。。。
判断浮点数是不是等于0,不是用$d == 0,而是abs($d) < EPS,这个EPS是个很小的值。 |
|
youngApr 15, 2014
2
|
|
mahone3297Apr 15, 2014
3
计算机的问题,跟php无关。。。
|
|
jsonlineApr 15, 2014 via Android
4
楼主,计算机很傻的
|
|
zogApr 15, 2014
5
计算机存储都是2进制,十进制浮点数有时候无法完全对应二进制。所以经常会出现这种情况。
|
|
zogApr 15, 2014
6
python下控制台下输入2.3 + 2.4,结果是:4.69999999999999999
|
|
txltyApr 15, 2014
7
直接贴到地址栏:
javascript:alert(16.9*100); |