python3 4版本中為何3 8 43 2的結果是 39 4000000006,而不是 39 4?

時間 2021-06-02 23:33:24

1樓:

可以參見這個答案:為什麼0.1+0.

2=0.30000000000000004而1.1+2.

2=3.3000000000000003? - Adam Wen 的回答

已經詳細的說明了原理

2樓:黃哥

這個是計算機浮點數近似運算的結果。

在電腦科學中,浮點(英語:Float point,縮寫為FP)是一種對於實數的近似值數值表現法,由乙個有效數字(即尾數)加上冪數來表示,通常是乘以某個基數的整數次指數得到。以這種表示法表示的數值,稱為浮點數(floating-point number)。

利用浮點進行運算,稱為浮點計算,這種運算通常伴隨著因為無法精確表示而進行的近似或捨入。

這種表示方法類似於基數為10的科學記數法,在計算機上,通常使用2為基數的冪數來表式。乙個浮點數a由兩個數m和e來表示:a = m × b

e。在任意乙個這樣的系統中,我們選擇乙個基數

b(記數系統的基)和精度

p(即使用多少位來儲存)。m(即尾數)是形如±d.ddd...

ddd的p位數(每一位是乙個介於0到b-1之間的整數,包括0和b-1)。如果m的第一位是非0整數,m稱作正規化的。有一些描述使用乙個單獨的符號位(s 代表+或者-)來表示正負,這樣m必須是正的。

e是指數。

這種表示法的設計,來自於對於值的表現範圍,與精密度之間的取捨:可以在某個固定長度的儲存空間內表示出某個實數的近似值。例如,乙個指數範圍為±4的4位十進位制浮點數可以用來表示43210,4.

321或0.0004321,但是沒有足夠的精度來表示432.123和43212.

3(必須近似為432.1和43210)。當然,實際使用的位數通常遠大於4。

此外,浮點數表示法通常還包括一些特別的數值:+∞和∞(正負無窮大)以及NaN('Not a Number')。無窮大用於數太大而無法表示的時候,NaN則指示非法操作或者無法定義的結果。

其中,無窮大,可表示為inf,在記憶體中的值是,階碼為全1,尾數全0。而NaN則是階碼全1,尾數不全0。

python3 6版本的如何安裝好scipy以及numpy mkl函式庫

你的問題描述的不夠清晰 python3.6 和 python3.8 是你單獨安裝的,還是通過 anaconda 新建子環境安裝的?python3.6 和 python3.8 均在 anaconda 裡面 直接使用 conda 作為包管理工具安裝 scipy,首先 conda activate 切換環...

如何看待船長在11 17版本中的改動?

水煮生煎 我出的是狂風暴擊流船長 轉殖試了一把 努力上岸 上賽季入坑船長,玩了也有千場船長了,這版本是真的狗都不玩。我都跑去玩劍魔腕豪狗熊了。這次改版削弱了前期對線的能力,但是給了乙個後期能c的可能。毫無疑問的是加強,大加強,但是線上更難混了。穩住對線就算贏。等出來了看下怎麼打吧。但是天賦肯定還是堅...

Dota2 7 20 版本中,哪些英雄比較強勢?哪些英雄比較弱勢?

阿毛 物理流的酒仙,主動開啟醉拳,如果25級點左邊天賦增加暴擊率,就成了80 概率4倍暴擊,80 閃避的小技能,比pa三四技能加一起都多。到了後期經常是酒仙跳進去,連擊刀兩下,醬油直接沒了。最近的比賽和路人的酒仙都是物理出裝,乙個出藍杖的都沒有。冰蛙的腦迴路也是清奇,物理流的酒仙太強了,我們來削弱一...