2017-02-18 6 views
1

Ich habe eine Datenbank, wo ich zum Beispiel speichern möchte: 10.54 als float oder double.Speichern von gebrochenen Zahlen in mysql

Ich habe eine Tabelle mit einer Spalte namens Temperatur, aber das Problem ist, dass, obwohl meine Einfügeanweisungen gut geht, wenn ich die Tabelle abfragen, es eine ganze Zahl immer zurückkehrt, in dem obigen Beispiel 10

Dies sind die Tabellen und Aussagen. Können Sie bitte helfen?

Tabelle:

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; 

Mögliche Abfrage:

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

Eine Abfrage:

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

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

Antwort

1

ändern Sie Format Temperatur, doppelt verwenden (255,2), wenn Sie 2 Nachkommastellen wollen

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

ändern Temperatur-Datentyp zu verdoppeln (255,2)

0

empfehlen DECIMAL statt DOUBLE siehe here Würde verwenden. Wie viele Stellen Sie in DECIMAL aufnehmen können here siehe