mysql 中浮点型与定点型数据的使用问题
1、运行wampserver,打开phpmyAdmin,创建测试数据表:"data":(1)id为编号;(2)number1,类型为浮点型float;(3)number2,类型为定点型decimal。
2、插入一条数据,sql语句如下:insertintodatavalues('',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.3var_dump($a==$bcd);//falsevar_dump($a < $bcd);//true
5、假如实在是需要比较浮点数的大小,php提供了一种方法,使用bccomp(参数1,参数2,小数位),如下:
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:63
阅读量:41
阅读量:49
阅读量:47
阅读量:29