mysql float值

mfuanj7w  于 2021-06-19  发布在  Mysql
关注(0)|答案(3)|浏览(339)

我想问一下mysql float格式。例如,我尝试插入float值 12345.66 插入时没有错误,值完全相同。但如果我试着像 12345.01 ,插入的值如下 12345.00 . 我试过任何有价值的东西 .0* 它总是作为 .00 . 为什么会这样?
我尝试从终端和phpmyadmin使用mysql。对不起,我英语不好。
这是我的mysql版本:

+-------------------------+-------------------------+
| Variable_name           | Value                   |
+-------------------------+-------------------------+
| innodb_version          | 5.7.23                  |
| protocol_version        | 10                      |
| slave_type_conversions  |                         |
| tls_version             | TLSv1,TLSv1.1           |
| version                 | 5.7.23-0ubuntu0.16.04.1 |
| version_comment         | (Ubuntu)                |
| version_compile_machine | x86_64                  |
| version_compile_os      | Linux                   |
+-------------------------+-------------------------+

这是我的创建表。所有的浮动都有相同的问题。

CREATE TABLE `angsurantempo` ( 
`ID` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`NoPA` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`Periode` int(11) NOT NULL,
`TglEfektif` datetime NOT NULL,
`Pokok` float(18,2) NOT NULL,
`Bunga` float(18,2) NOT NULL, 
`Denda` float(18,2) NOT NULL,
`Hari` int(11) NOT NULL,
`TglPost` datetime NOT NULL,
`LogPost` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
`IDKop` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`ID`,`IDKop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

我的插入查询:

INSERT INTO angsurantempo VALUES ('11372','PA-201708-002','15','2017-08-26 00:00:00','1882755.08','2261277.05','0','31','2017-08-30 15:16:00','PAA-201708-007','MAS1')

这个mysql服务器安装在vps ubuntu中

rggaifut

rggaifut1#

您应该使用此命令将表中该字段的数据类型从float更改为double

ALTER TABLE your_table_name
MODIFY your_column_name DOUBLE NOT NULL;
68de4m5k

68de4m5k2#

你可以用 decimal(7,2) 用于存储精确十进制值的数据类型。

tcbh2hod

tcbh2hod3#

如果要插入12345.01,则不可能

我认为你不能在小数点后加逗号(,)

相关问题