python 解決數(shù)據(jù)庫寫入時(shí)float自動(dòng)變?yōu)檎麛?shù)的問題
數(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)文章
python如何實(shí)現(xiàn)excel數(shù)據(jù)添加到mongodb
本文介紹了python是如何實(shí)現(xiàn)excel數(shù)據(jù)添加到mongodb,為了將數(shù)據(jù)導(dǎo)入mongodb,引入了pymongo,xlrd包,需要的朋友可以參考下2015-07-07Python中使用scapy模擬數(shù)據(jù)包實(shí)現(xiàn)arp攻擊、dns放大攻擊例子
這篇文章主要介紹了Python中使用scapy模擬數(shù)據(jù)包實(shí)現(xiàn)arp攻擊、dns放大攻擊例子,本文重點(diǎn)在于scapy有使用上,需要的朋友可以參考下2014-10-10Python辦公自動(dòng)化之將任意文件轉(zhuǎn)為PDF格式
這種把某個(gè)文件轉(zhuǎn)為pdf枯燥無聊的工作,既沒有什么技術(shù)含量又累. 今天辰哥就教大家將任意文件批量轉(zhuǎn)為PDF,這里以日常辦公的word、excel、ppt為例,這三種格式的文件轉(zhuǎn)為PDF.需要的朋友可以參考下2021-06-06Python數(shù)據(jù)分析之雙色球統(tǒng)計(jì)單個(gè)紅和藍(lán)球哪個(gè)比例高的方法
這篇文章主要介紹了Python數(shù)據(jù)分析之雙色球統(tǒng)計(jì)單個(gè)紅和藍(lán)球哪個(gè)比例高的方法,涉及Python數(shù)值運(yùn)算及圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-02-02python卸載numpy出現(xiàn)WinError:拒絕訪問的解決方案
這篇文章主要介紹了python卸載numpy出現(xiàn)WinError:拒絕訪問的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08