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

主頁 > 知識庫 > python3 實現除法結果為整數

python3 實現除法結果為整數

熱門標簽:n400電話申請多少錢 廈門crm外呼系統如何 百應ai電銷機器人鄭州 西藏快速地圖標注地點 如何在地圖標注文字 ai地圖標注 地圖標注推廣單頁 長春人工智能電銷機器人官網 女王谷地圖標注

問題描述

101/100,想要的結果是1,但是算出來的結果是1.01

解決方案

101 // 100

結果圖

補充:python2 與 3:一般除法、除法取整、除法取余、精確減法與精確除法

python2

python2除法

python2的除法,與c語言除法類似,兩個整數相除結果一定是整數,除數與被除數有一個是浮點數,結果就是浮點數。因此當兩個整數相除,結果又有小數時,由于結果是整數,所以小數部分會被省略,針對這種情況,要實現真正的除法,除數與被除數至少有一個應改為浮點數。(貌似python2.7開始,除法和python3除法一樣了,沒有仔細考究)

a = 3
b = 2
print a/b
print float(a)/b
print a/float(b)
print float(a)/float(b)
# 結果
1
1.5
1.5
1.5

python2除法取整

加一個int(),進行強制類型轉換即可。

a = 4.5
b = 3
print a/b
print int(a/b)
# 結果
1.5
1

python2除法取余

利用%操作即可。

a = 5.5
b = 3
print a % b
# 結果
2.5

python3

python3除法

python3的除法就直接使用"/",就可以了,不存在python2的情況

a = 3
b = 2
print(a/b)
# 結果
1.5

python3除法取整

利用"http://"操作
a = 5.5
b = 2
print(a//b)
# 結果
2.0

python3除法取余

利用"%"操作

a = 5.5
b = 2
print(a%b)
# 結果
1.5

python3精確減法與精確除法

我們先看看下面的輸出

a = 0.9
b = 1
print(b-a)
print((b-a)/100)
print((0.1)/100)
# 結果
0.09999999999999998
0.0009999999999999998
0.001

python計算要把數字先轉為二進制,因為浮點數以二進制形式表示時的有窮性(利用乘K取余法,0.9的二進制無限延展),會導致計算誤差。下面摘自python文檔原話。

On most machines today, floats are approximated using a binary fraction with the numerator using the first 53 bits starting with the most significant bit and with the denominator as a power of two.

這不是只有python才有的bug,也不是你代碼的bug,所有的編程語言都會有這個問題,當然可能很多編程語言會使用某些機制來規避這種顯示。回到該blog的例子,0.9的二進制表示如下:

0.1110011001100110011001100110011001100110011001100110011

1-0.9的二進制表示為:

0.0001100110011001100110011001100110011001100110011001100

轉化過來就是0.09999999999999998

這時候為了實現精確運算,可以使用類decimal。

import decimal
decimal.getcontext().prec = 10 # 取小數點后精度到第10位
a = 0.9
b = 1
print(decimal.Decimal(b)-decimal.Decimal(a))
print((decimal.Decimal(b)-decimal.Decimal(a))/100)
print((0.1)/100)
# 結果
0.1000000000
0.0010000000
0.001

當然,直接使用近似函數round()也是可以的。

a = 0.9
b = 1
print(round(b-a, 10))
print(round((b-a)/100, 10))
print(round((0.1)/100, 10))
# 結果
0.1
0.001
0.001

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • python3 中的幾種除法介紹,小數的不同顯示
  • 詳解Python3除法之真除法、截斷除法和下取整對比
  • 詳談Python2.6和Python3.0中對除法操作的異同
  • Python3中的真除和Floor除法用法分析

標簽:黔東 興安盟 綿陽 渭南 亳州 拉薩 廊坊 內江

巨人網絡通訊聲明:本文標題《python3 實現除法結果為整數》,本文關鍵詞  python3,實現,除法,結,果為,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python3 實現除法結果為整數》相關的同類信息!
  • 本頁收集關于python3 實現除法結果為整數的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 曲靖市| 福建省| 石嘴山市| 文登市| 繁昌县| 淮北市| 遂川县| 密山市| 长武县| 辽阳县| 临潭县| 苍南县| 百色市| 阳西县| 佛教| 望奎县| 伊川县| 颍上县| 东平县| 班戈县| 高清| 道孚县| 新化县| 台湾省| 无棣县| 清水河县| 且末县| 三穗县| 扎兰屯市| 溆浦县| 富川| 玛沁县| 临猗县| 龙井市| 兰溪市| 改则县| 邵武市| 巴楚县| 平塘县| 廉江市| 长沙市|