环境
CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`test` float(20,2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
问题描述 在float类型中插入数据 1.00 在数据库中的表现为 1
// 执行语句
INSERT INTO test SET `test` = 1.00
// 数据库显示结果为 1
![](https://img.haomeiwen.com/i13323756/4fe8d52668dfbefb.png)
问题出现的原因 :
由于数据库字段的长度导致 float 长度 必须大于15 数据库的数据才会自动保存小数点后的位数
比如说:
插入 1 会保存为 1.00 小于15 的话 会自动忽略掉 数据最后面的0 这个时候数据的结果是正常的
解决方法
把数据库的float 字段的长度设置为 大于 15即可
![](https://img.haomeiwen.com/i13323756/6169a2876b3fba72.png)
网友评论