Php 在MySQL中,浮点值围绕其自身

Php 在MySQL中,浮点值围绕其自身,php,mysql,Php,Mysql,我刚刚遇到了一个很奇怪的情况 我试图通过表单传递一个float/double值(320.25和660.60),将其保存在MySQL数据库中。为这些值准备的字段设置为double(6.0) 问题是,当我把320.25放进去时,只有320被保存了下来。当我把660.60-突然667保存在该特定字段中。我甚至试着用逗号(,)来做,但结果没有改变 有什么问题吗?我没有在任何地方使用round()或类似的东西 感谢您的帮助。在MySQL double中,根据手册:double(m,d)是:“m”=数字总数

我刚刚遇到了一个很奇怪的情况

我试图通过表单传递一个float/double值(320.25和660.60),将其保存在MySQL数据库中。为这些值准备的字段设置为double(6.0)

问题是,当我把320.25放进去时,只有320被保存了下来。当我把660.60-突然667保存在该特定字段中。我甚至试着用逗号(,)来做,但结果没有改变

有什么问题吗?我没有在任何地方使用round()或类似的东西


感谢您的帮助。

在MySQL double中,根据手册:
double(m,d)
是:“m”=数字总数,d=小数位数


因此,在您的设置中,您可以使用
double(6,2)
来保存最大9999,99,或者在MySQL-double中使用
double(8,2)
来保存最大99999,99,根据手册:
double(m,d)
是:“m”=数字总数,d=小数数


因此,在您的设置中,您可以使用
double(6,2)
来保持最大9999,99,或者
double(8,2)
来保持最大99999,99

您可以使用
十进制(6,2)
double(6,2)

第一个数字代表所有数字,第二个数字代表小数。您可以使用
十进制(6,2)
双精度(6,2)

第一个数字代表所有数字,第二个数字代表小数。您告诉mysql在浮点中只显示
6
位:

mysql> create table foo (
    dbl1 double(6,0),
    dbl2 double,
    dbl3 double(6,2));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into foo (dbl1, dbl2, dbl3) values (1.234567, 1.234567, 1.234567);
Query OK, 1 row affected (0.00 sec)

mysql> select * from foo;
+------+----------+------+
| dbl1 | dbl2     | dbl3 |
+------+----------+------+
|    1 | 1.234567 | 1.23 |
+------+----------+------+
1 row in set (0.00 sec)

注意
6,0
字段如何显示NO小数位数,以及
6,2
浮点如何显示2个小数位数。

简单。您告诉mysql在浮点中只显示
6
位:

mysql> create table foo (
    dbl1 double(6,0),
    dbl2 double,
    dbl3 double(6,2));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into foo (dbl1, dbl2, dbl3) values (1.234567, 1.234567, 1.234567);
Query OK, 1 row affected (0.00 sec)

mysql> select * from foo;
+------+----------+------+
| dbl1 | dbl2     | dbl3 |
+------+----------+------+
|    1 | 1.234567 | 1.23 |
+------+----------+------+
1 row in set (0.00 sec)
注意
6,0
字段如何显示NO小数位数,以及
6,2
浮点如何显示2个小数位数