我想问一下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中
3条答案
按热度按时间rggaifut1#
您应该使用此命令将表中该字段的数据类型从float更改为double
68de4m5k2#
你可以用
decimal(7,2)
用于存储精确十进制值的数据类型。tcbh2hod3#
如果要插入12345.01,则不可能
我认为你不能在小数点后加逗号(,)