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

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

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

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

問題描述

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

發(fā)現(xiàn)實現(xiàn)因為我創(chuàng)建表的sql語句有問題,因為使用Navicat直接導(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ù)部分自動是0位,整數(shù)部分為4位。自然小數(shù)就沒有了。所以可以把float(4,0)改成float。

float所表示的范圍

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

float 在計算機中表示是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.由于表示一個大的正數(shù)

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

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

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

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

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

相關(guān)文章

最新評論