问题描述
今天用python插入数据到mysql时遇到个问题,明明数据库设置的字段数据类型是float,要存的数据也是float类型,但是存进去后就变成了整数了,比如0.98变成了1.
发现实现因为我创建表的sql语句有问题,因为使用Navicat直接导出的sql语句
表的sql语句如下
CREATE TABLE `traffic_and_weather` (
`currentTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`expedite` float(4,0) NOT NULL,
`congested` float(4,0) NOT NULL DEFAULT '0',
`blocked` float(4,0) NOT NULL DEFAULT '0',
`unknown` float(4,0) DEFAULT '0',
`weather` int NOT NULL DEFAULT '0',
PRIMARY KEY (`currentTime`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
问题解决方案
问题就出在float(4,0)这里了,小数部分自动是0位,整数部分为4位。自然小数就没有了。所以可以把float(4,0)改成float。