mysql 中浮点型与定点型数据的使用问题
1、运行wampserver,打开phpmyAdmin,创建测试数据表:"data":
(1)id为编号;
(2)number1,类型为浮点型float;
(3)number2,类型为定点型decimal。

2、插入一条数据,sql语句如下:
insert into data values ('',999999.01,999999.01)
可以看到number1,number2的值居然是不一样的,是不是很奇怪?

3、在mysql中float、double是浮点数,decimal是定点数。浮点数能够表示更大的数据范围,但是它有一个精度问题。所以我们在存储数据是尽量使用定点数

4、还有一个问题,是浮点数的比较,开发中应尽量避免浮点数做比较,例如:
<?php$a = (float)3.3;
$b = 1.1;
$c = 1.1;
$d = 1.1;
$bcd = (float) ($b+$c+$d);
var_dump($a, $bcd);//echo 3.3 ,3.3
var_dump($a==$bcd);//false
var_dump($a < $bcd);//true


5、假如实在是需要比较浮点数的大小,php提供了一种方法,使用bccomp(参数1,参数2,小数位),如下:



声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:105
阅读量:50
阅读量:108
阅读量:134
阅读量:63