2017-02-18 53 views
1

我有一个数据库,我想要保存例如:10.54作为浮点数或双精度数。在MySQL中存储破碎的数字

我有一个名为柱温表,但问题是,即使我的INSERT语句顺利,当我查询表,它总是返回一个整数,在上面的例子中10

这些是表格和陈述。你能帮忙吗?

表:

CREATE TABLE `data_facts` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `network_asset_code` varchar(255) NOT NULL DEFAULT '', 
    `temperature` double(255,0) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=latin1; 

可能的查询:

INSERT INTO data_facts (network_asset_code, temperature) VALUES ('abc', 10.5) 

一个查询:

mysql> select * from data_facts where data_facts.id=1; 
+----+--------------------+-------------+ 
| id | network_asset_code | temperature | 
+----+--------------------+-------------+ 
| 1 | abc    |   10 | 
+----+--------------------+-------------+ 
1 row in set (0.00 sec) 
+0

见https://dev.mysql.com/doc/refman/5.7/en/floating-point-types.html –

回答

1

改变你的格式下,如果你想小数点后2采用双(255,2)

CREATE TABLE `data_facts` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `network_asset_code` varchar(255) NOT NULL DEFAULT '', 
    `temperature` double(255,2) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=latin1; 
0

变温度数据类型的两倍(255,2)

0

会建议使用的DECIMAL代替DOUBLE参考here。 您可以在DECIMAL容纳多少位是指here