mysql 中浮点型与定点型数据的使用问题

2025-05-09 12:00:31

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

mysql 中浮点型与定点型数据的使用问题

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

mysql 中浮点型与定点型数据的使用问题

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

mysql 中浮点型与定点型数据的使用问题

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

mysql 中浮点型与定点型数据的使用问题
mysql 中浮点型与定点型数据的使用问题

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

mysql 中浮点型与定点型数据的使用问题
mysql 中浮点型与定点型数据的使用问题
mysql 中浮点型与定点型数据的使用问题
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢