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

时间:2026-02-15 07:24:37

1、运行wampserver,打开phpmyAdmin,创建测试数据表:"data":

(1)id为编号;

(2)number1,类型为浮点型float;

(3)number2,类型为定点型decimal。

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

2、插入一条数据,sql语句如下:

insert into data values ('',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.3

var_dump($a==$bcd);//false

var_dump($a < $bcd);//true

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

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

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

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

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

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

© 2026 一点知道
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com