婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 解決Python中的modf()函數取小數部分不準確問題

解決Python中的modf()函數取小數部分不準確問題

熱門標簽:河北防封卡電銷卡 電銷機器人的風險 手機網頁嵌入地圖標注位置 開封自動外呼系統怎么收費 應電話機器人打電話違法嗎 地圖標注線上如何操作 開封語音外呼系統代理商 400電話辦理哪種 天津電話機器人公司

使用math.modf()對一個浮點數進行拆分時經常會遇到如下情況

如下

import math
print(math.modf(2.4)) # 輸出 (0.3999999999999999, 2.0)

我們會發現對2.4進行拆分得到的小數并不是0.4,這是因為什么呢?

這是因為計算機采用的是二進制代碼,而二進制代碼由于計算上的誤差無法準確表示某些十進制數的小數部分。

下面我們具體來講一下。

我們知道一個十進制數轉化為二進制數需要分為兩部分進行計算:整數部分和小數部分。

整數部分采用“除二取余法”。將這個整數除以2,得到它的余數,然后將商再除以3,直到商為0為止,并將各個得到的余數按照相反的順序進行排列。

小數部分采用“乘2取整法”,將這個小數乘2,將新得到的數的整數部分取出,再用2乘余下的小數部分,如此往復直到乘積中的小數部分為0或者達到要求的精度為止。并將取出的整數部分按照取出的先后順序從前到后排列。

 123/2=61...1
 61/2=30...1
 30/2=15...0
 15/2=7...1
 7/2=3...1
 3/2=1...1
 1/2=0...1
 (123)10=(1111011)2
0.4*2=0.8...0
0.8*2=1.6...1
0.6*2=1.2...1
0.2*2=0.4...0
0.4*2=0.8...0
0.8*2=1.6...1
0.6*2=1.2...1
(0.4)10=(0.011001100110011001100110...)2
(123.4)2=(1111011.011001100110011...)2

十進制的0.4轉化為二進制時會出現重復循環“0110”的情況,但是目前計算機存儲浮點數是按照電器和電子工程師協會的標準(IEEE754浮點數存儲格式標準)來進行存儲的。

IEEE規定單精度浮點最多存儲32位(4個字節):

31位是符號位。1表示該數為負,0為正

30~23是指數位(-128-127)

22~0是尾數位,尾數的編碼一般是源碼和補碼

IEEE標準從邏輯上用三元組{S,E,M}表示一個數,如圖所示:

也就是說上面將0.4轉換出的二進制代碼,我們只能存儲23位,即使數據類型為double,也只能存儲52位,這樣大家便能看出問題出現的原因了。23位的數據顯然無法完整表示0.4的二進制數據,于是誤差產生了。

那所有的十進制小數都無法完整表示嗎?不是的,只要小數部分乘上2最終小數部分能夠得到0就不會出現這種問題,比如0.5,0.75。

import math
print(math.modf(1.5))  # 輸出 (0.5,1.0)
0.5*2=1...1
(0.5)10=(0.1)2
0.75*2=1.5...1
0.5*2=1...1
(0.75)10=(0.11)2

補充:Python中“取整”的各種問題

一、初衷:

有時候我們分頁展示數據的時候,需要計算頁數。一般都是向上取整,例如counts=205 pageCouts=20 ,pages= 11 頁。

一般的除法只是取整數部分,達不到要求。

二、方法:

1、通用除法:

UP(A/B) = int((A+B-1)/B)

取臨界值,計算下A+B-1的范圍就OK.

2 、Python除法:

首先要說的是python中的除法運算,

當使用x/y形式進行除法運算時,那么會進行所謂的true除法,比如2.0/3的結果是 0.66666666666666663。

另外一種除法是采用x//y的形式(向下取整),那么這里采用的是所謂floor除法,即得到不大于結果的最大整數值,這個運算時與操作數無關的。比如2//3的結果是0,-2//3的結果是-1,-2.0//3的結果是-1.0。

在python 3.0中,x/y將只執行true除法,而與操作數無關;x//y則執行floor除法。

Python運算向上取整方法:(A+B-1)/B

3、Python match.ceil函數 np.ceil函數

ceil(x)函數是向上取整,即取大于等于x的最接近整數。

import math 
math.ceil(float(205)/20) 
import numpy as np
np.ceil(float(205)/20)

Python 向上取整的算法

1、一般使用floor除法 (np.floor()或者math.floor())

import numpy as np 
n = np.array([-1.7, -2.5, -0.2, 0.6, 1.2, 2.7, 11]) 
floor = np.floor(n)
print(floor)  # [ -2.  -3.  -1.   0.   1.   2.  11.]

2、一般除法/

A=100
B=16
c=100//16
(c=6)

3、round()四舍五入函數。

np.around 返回四舍五入后的值,可指定精度。

around(a, decimals=0, out=None)

a 輸入數組

decimals 要舍入的小數位數。 默認值為0。 如果為負,整數將四舍五入到小數點左側的位置

import numpy as np 
n = np.array([-0.746, 4.6, 9.4, 7.447, 10.455, 11.555])
 
around1 = np.around(n)
print(around1)  # [ -1.   5.   9.   7.  10.  12.]
 
around2 = np.around(n, decimals=1)
print(around2)  # [ -0.7   4.6   9.4   7.4  10.5  11.6]
 
around3 = np.around(n, decimals=-1)
print(around3)  # [ -0.   0.  10.  10.  10.  10.]

Python 分別取整的算法

math模塊中的 modf()方法

將整數部分和小數部分分別取出,可以使用math模塊中的 modf()方法

例如:

>>> math.modf(4.25)
(0.25, 4.0)
>>> math.modf(4.33)

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

您可能感興趣的文章:
  • OpenCV-Python實現通用形態學函數
  • python通過函數名調用函數的幾種方法總結
  • Python量化交易實戰之使用Resample函數轉換“日K”數據
  • Python函數裝飾器的使用教程
  • 淺談Python中的函數(def)及參數傳遞操作
  • Python基礎之函數嵌套知識總結
  • python 定義函數 返回值只取其中一個的實現
  • 這三個好用的python函數你不能不知道!

標簽:宿遷 六盤水 駐馬店 山東 蘭州 江蘇 成都 常州

巨人網絡通訊聲明:本文標題《解決Python中的modf()函數取小數部分不準確問題》,本文關鍵詞  解決,Python,中的,modf,函數,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《解決Python中的modf()函數取小數部分不準確問題》相關的同類信息!
  • 本頁收集關于解決Python中的modf()函數取小數部分不準確問題的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    337p日本欧洲亚洲大胆色噜噜| 毛片基地黄久久久久久天堂| 国产一区二区三区四| 久久久91精品国产一区二区精品| 成人午夜免费av| 亚洲二区在线视频| 欧美精品一区二区三区高清aⅴ| youjizz久久| 久久久噜噜噜久久人人看| 91视频在线观看免费| 久久99精品一区二区三区三区| 日韩欧美美女一区二区三区| 99久久久国产精品| 蜜臂av日日欢夜夜爽一区| 国产视频一区二区在线观看| 欧美美女一区二区在线观看| 成人久久久精品乱码一区二区三区| 亚洲综合一区二区三区| 欧美精品一区二区久久婷婷| 欧美性做爰猛烈叫床潮| 成人的网站免费观看| 日韩电影一区二区三区| 国产精品久久久久久久久久久免费看| 91啪亚洲精品| 久久精品国产在热久久| 精品福利二区三区| 日本道在线观看一区二区| 极品少妇xxxx偷拍精品少妇| 五月天激情综合网| 中文字幕日韩精品一区 | caoporen国产精品视频| 午夜伦欧美伦电影理论片| 欧美一级高清片| 国产成都精品91一区二区三| 久久久久久麻豆| 成人中文字幕电影| 午夜成人免费视频| 中文字幕巨乱亚洲| 欧美综合在线视频| 不卡在线视频中文字幕| 一区二区三区欧美激情| 欧美精品一区男女天堂| 欧美一区二区在线播放| 欧美蜜桃一区二区三区| 欧美日韩卡一卡二| 欧美乱熟臀69xxxxxx| 欧美中文字幕久久 | 亚洲制服欧美中文字幕中文字幕| 国产精品色哟哟网站| 久久久无码精品亚洲日韩按摩| wwwwxxxxx欧美| 亚洲激情图片一区| 有坂深雪av一区二区精品| 亚洲精品伦理在线| 亚洲影院理伦片| 国产精品视频免费| 国产亚洲精品bt天堂精选| 久久久久久久久一| 国产精品久久久久久久久免费相片 | 精品精品国产高清一毛片一天堂| 99久久99久久精品国产片果冻| 国产精品一区二区三区网站| 丰满白嫩尤物一区二区| 99久久久无码国产精品| 制服丝袜国产精品| 亚洲精品一区二区三区蜜桃下载| 久久久精品国产免费观看同学| 亚洲综合区在线| 另类欧美日韩国产在线| 欧美性xxxxxx少妇| 精品国产一区二区亚洲人成毛片| 在线综合视频播放| 亚洲精品中文在线观看| 麻豆一区二区三| 色婷婷综合激情| 久久蜜桃av一区二区天堂| 国产欧美一区二区精品婷婷| 亚洲在线视频网站| 黄色精品一二区| 在线成人免费视频| 欧美高清在线精品一区| 日韩精品91亚洲二区在线观看| 国产一区二区三区四区五区入口| 99精品久久免费看蜜臀剧情介绍| 欧美老年两性高潮| 欧美国产欧美综合| 婷婷中文字幕综合| 国产一区二区三区日韩| 欧美午夜电影网| 中文字幕制服丝袜一区二区三区 | 日韩影院免费视频| jlzzjlzz亚洲日本少妇| 制服丝袜日韩国产| 国精品**一区二区三区在线蜜桃| 在线观看国产一区二区| 欧美国产精品中文字幕| 久久电影国产免费久久电影| 欧美少妇性性性| 国产精品家庭影院| 九色综合国产一区二区三区| 欧美日韩一区二区三区在线| 欧美国产日本韩| 国产一区二区精品久久91| 91精品国产色综合久久不卡电影| 亚洲欧美日韩国产综合在线| 国产资源在线一区| 91丨porny丨蝌蚪视频| 精品国产免费一区二区三区四区 | 欧美精品一区二区高清在线观看| 亚洲福利电影网| 粉嫩蜜臀av国产精品网站| 久久久久免费观看| 经典三级一区二区| **网站欧美大片在线观看| 成人午夜在线播放| 亚洲日本中文字幕区| 99久久精品费精品国产一区二区| 久久久三级国产网站| 91丨porny丨国产| 国产精品另类一区| 欧美日韩精品一区二区在线播放| 亚洲精品成人少妇| 成人动漫在线一区| 亚洲人精品午夜| 色综合久久99| 亚洲精品va在线观看| 在线观看日韩毛片| 国产欧美视频一区二区| 麻豆成人av在线| 日韩欧美一区二区三区在线| 蜜臀av性久久久久av蜜臀妖精| 99re视频精品| 亚洲日本在线视频观看| 色吧成人激情小说| 亚洲一线二线三线视频| 在线精品视频免费观看| 中文一区在线播放| 丁香婷婷综合激情五月色| 2024国产精品视频| 成人黄页毛片网站| 亚洲视频精选在线| 欧美视频第二页| 一本大道av伊人久久综合| 亚洲一区在线视频观看| 91精品国产福利在线观看| 男女男精品网站| 久久久久97国产精华液好用吗| 国产馆精品极品| 樱花草国产18久久久久| 9191国产精品| 国产精品18久久久久久久久久久久| 国产精品女人毛片| 国产麻豆精品在线观看| 国产三级三级三级精品8ⅰ区| 91免费国产在线| 亚洲观看高清完整版在线观看| 欧美v日韩v国产v| 91丨porny丨首页| 日韩avvvv在线播放| 国产日韩欧美a| 欧美日韩黄色影视| 粉嫩绯色av一区二区在线观看| 亚洲日本在线天堂| 成人国产亚洲欧美成人综合网| 亚洲精品亚洲人成人网| 欧美视频在线观看一区二区| 国产做a爰片久久毛片| 亚洲美女屁股眼交| 亚洲精品一区二区三区在线观看| 97精品国产露脸对白| 久久99国产精品免费| 亚洲精品国产一区二区三区四区在线| 欧美日本视频在线| 在线视频欧美精品| 国产黄色精品网站| 成人激情校园春色| 麻豆精品在线视频| 亚洲一区二区在线播放相泽 | 国产精品亚洲а∨天堂免在线| 亚洲免费三区一区二区| 在线免费av一区| 欧美熟乱第一页| caoporm超碰国产精品| 成人久久视频在线观看| 精品影视av免费| 亚洲男人天堂av| 肉色丝袜一区二区| 亚洲与欧洲av电影| 三级成人在线视频| 亚洲一区精品在线| 久久精品国产99国产| 亚洲精品国产第一综合99久久| 国产精品久久久久久久久晋中 | 国产精品久久久久久久午夜片| 国产精品麻豆欧美日韩ww| 18欧美乱大交hd1984| 1区2区3区精品视频| 中文字幕日本乱码精品影院| 亚洲日本在线视频观看| 日韩综合在线视频|