php关于金额比较引发的问题(转)
2016-06-01 11:24
603 查看
做电子商务的时候一般会涉及到金额的比较,按正常的思路来看用><=这些个符号就可以了。可是要是到程序上来搞这个的话就出大事了。现在看下这段代码:
输出结果会出乎大家意料,输出false,为什么会这样呢?其实这个和电脑中存储小数的原理有关。大家都知道计算机只能存储0和1,我们日常生活习惯使用的是10进制的数据,像0.07这个小数在计算机中存储时会有精度损失,以至于计算出来的结果会有偏差。
那么怎么解决这个问题?虽然计算机存储小数有偏差,但是偏差还是非常小,像上例中0.07 * 100如果显示出小数点后面20位的话,最终的值如下
$f = 0.07; var_dump($f * 100 == 7);//输出false
输出结果会出乎大家意料,输出false,为什么会这样呢?其实这个和电脑中存储小数的原理有关。大家都知道计算机只能存储0和1,我们日常生活习惯使用的是10进制的数据,像0.07这个小数在计算机中存储时会有精度损失,以至于计算出来的结果会有偏差。
那么怎么解决这个问题?虽然计算机存储小数有偏差,但是偏差还是非常小,像上例中0.07 * 100如果显示出小数点后面20位的话,最终的值如下
相关文章推荐
- php通过xpath解析xml数据
- PHP 查询MySql int类型返回string
- 优惠分摊算法 php版
- DAY5 php + mysql 写一个简单的sql注入平台
- PHP字符串常用操作
- 【专访 PHP 之父】PHP7 性能翻倍关键大揭露
- 内存中OLTP与内存不足
- PHP模块化安装教程
- 如何在Windows Server 2008 R2下搭建FTP服务
- 深入理解PHP之源码目录结构与功能说明
- Zend Studio使用教程:将Zend Studio作为插件安装
- php 正则表达式
- php 字符串处理
- 基于PHP生成简单的验证码
- 深入理解PHP原理之执行周期分析
- PHP strcmp()漏洞
- PHP7 快速编译安装
- PHP-HTMLhtml重要知识点笔记(必看)
- 深入理解PHP之OpCode原理详解
- 每天laravel-20160819| Container -22