欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 解決數(shù)據(jù)庫寫入時(shí)float自動(dòng)變?yōu)檎麛?shù)的問題

 更新時(shí)間:2022年07月12日 10:59:32   作者:黎先生你好  
這篇文章主要介紹了python 解決數(shù)據(jù)庫寫入時(shí)float自動(dòng)變?yōu)檎麛?shù)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

數(shù)據(jù)庫寫入時(shí)float自動(dòng)變?yōu)檎麛?shù)問題

問題描述

今天用python插入數(shù)據(jù)到mysql時(shí)遇到個(gè)問題,明明數(shù)據(jù)庫設(shè)置的字段數(shù)據(jù)類型是float,要存的數(shù)據(jù)也是float類型,但是存進(jìn)去后就變成了整數(shù)了,比如0.98變成了1.

發(fā)現(xiàn)實(shí)現(xiàn)因?yàn)槲覄?chuàng)建表的sql語句有問題,因?yàn)槭褂肗avicat直接導(dǎo)出的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)這里了,小數(shù)部分自動(dòng)是0位,整數(shù)部分為4位。自然小數(shù)就沒有了。所以可以把float(4,0)改成float。

float所表示的范圍

**關(guān)于float 表示的數(shù)的范圍的計(jì)算問題?**

float 在計(jì)算機(jī)中表示是32位 sign(1bit)+exponent(8)+fraction(23)

階碼用移碼來表示,8位移碼(偏移量為127) 本來應(yīng)該可以表示-128~127,但是全0和全1被用來        表示特殊狀態(tài)的指數(shù)

所以為-126~127. 這里為什么要使用127來作為偏移量,若使用128 則8位移碼表示范圍-127~126.由于表示一個(gè)大的正數(shù)

比一個(gè)小的負(fù)數(shù)更加重要所以127作為偏移量比較合適。

現(xiàn)在可以計(jì)算其表示范圍了:

尾數(shù)部分的取值范圍[1,2),所以最小負(fù)數(shù)-2*2^127 最大負(fù)數(shù)-1*2^(-126)

最小正數(shù) 1*2^(-126) 最大正數(shù)2*2^(127)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論