gpt4 book ai didi

MySQL 浮点近似值和精度

转载 作者:行者123 更新时间:2023-11-29 07:37:14 25 4
gpt4 key购买 nike

我将一列设置为FLOAT(32,11),并且在存储值时得到了一些奇怪的结果。现在我知道 float 只是一个近似值,但这似乎是一个可怕的近似值,尤其是在给定精度的情况下。

mysql> CREATE TABLE test (a FLOAT(32,11));
mysql> INSERT INTO test (a) VALUES (300000.08);
mysql> SELECT * FROM test;
+--------------------+
| a |
+--------------------+
| 300000.09375000000 |
+--------------------+
1 row in set (0.00 sec)

它没有使用所有可用的精度,这似乎很奇怪。对我缺少的东西有什么想法吗?

CentOS 上的 MySQL 版本 5.1.73

最佳答案

FLOATsingle-precision floating point 。它只有 24 位尾数。这不足以准确保存 8 位十进制数字,因此最低数字会出现错误。

如果您使用 DOUBLE 而不是 FLOAT,您会得到更准确的结果。

mysql> CREATE TABLE test (a DOUBLE(32,11));    
mysql> INSERT INTO test (a) VALUES (300000.08);
mysql> select * from test;
+--------------------+
| a |
+--------------------+
| 300000.08000000002 |
+--------------------+

关于MySQL 浮点近似值和精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30335901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com