亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Python數(shù)值處理(一)

isaced / 3492人閱讀

摘要:取整使用函數(shù)可以輕松的對浮點(diǎn)數(shù)進(jìn)行取整操作。這是因?yàn)楹瘮?shù)在應(yīng)對這種與兩個整數(shù)距離相同的情況時(shí),會取到最近的偶數(shù)上去。如果你特別需要精確的數(shù)值,那么可以使用模塊。

round()取整

使用round()函數(shù)可以輕松的對浮點(diǎn)數(shù)進(jìn)行取整操作。示例如下:

>>> round(1.23, 1)
1.2
>>> round(1.27, 1)
1.3
>>> round(-0.36, 1)
-0.4

round()第二個參數(shù)可以是負(fù)數(shù):

>>> a = 13849
>>> round(a, -1)
12850
>>> round(a, -2)
13800

但是要注意,這里有兩個很奇怪的例子:

>>> round(2.5)
2
>>> round(0.5)
0

可以發(fā)現(xiàn),這里完全沒有按照我們所熟悉的四舍五入的取整規(guī)則來。這是因?yàn)?b>round()函數(shù)在應(yīng)對這種與兩個整數(shù)距離相同的情況時(shí),會取到最近的偶數(shù)上去。

同時(shí)官方文檔中還舉了一個例子,

Note The behavior of round() for floats can be surprising: for example, round(2.675, 2) gives 2.67 instead of the expected 2.68. This is not a bug: it’s a result of the fact that most decimal fractions can’t be represented exactly as a float. See Floating Point Arithmetic: Issues and Limitations for more information.

round(2.675, 2)的結(jié)果居然是2.67,這個的原因是浮點(diǎn)數(shù)表示是有誤差的,2.675在計(jì)算機(jī)上實(shí)際上不是準(zhǔn)確的2.675。

解釋一下浮點(diǎn)數(shù)問題

首先我們要明確一個概念,計(jì)算機(jī)只能識別二進(jìn)制,也就是一堆10的組合,但是人類常用的卻是十進(jìn)制。
十進(jìn)制的數(shù)在計(jì)算機(jī)里就需要轉(zhuǎn)換成二進(jìn)制表示,在將十進(jìn)制整數(shù)轉(zhuǎn)為二進(jìn)制的時(shí)候,往往是將原數(shù)不斷除以2,直到商小于1,將每一次得到的余數(shù)逆序排列,就能得到這個整數(shù)的二進(jìn)制表示了。
到了小數(shù)部分,我們采用的是乘以2,取整數(shù)部分,直到小數(shù)部分為0,順序排列。但是有些特殊的數(shù)就要搞事情了。

0.1 * 2 = 0.2 => 0
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.2 * 2 = 0.4 => 0
0.4 * 2 = 0.8 => 0
0.8 * 2 = 1.6 => 1
...

發(fā)現(xiàn)沒有,進(jìn)入無限循環(huán)了,也就是說整數(shù)中一些小數(shù),在二進(jìn)制表示的時(shí)候是無限循環(huán)小數(shù),但是在計(jì)算機(jī)中畢竟是用有限位來表示一個值的,這就造成了有些小數(shù)(浮點(diǎn)數(shù))在計(jì)算機(jī)中是被截掉部分的,這就是浮點(diǎn)數(shù)不精確的原因啦。

decimal

如果你特別需要精確的數(shù)值,那么可以使用decimal模塊。當(dāng)然這是有性能代價(jià)的(有得必有失嘛)。
舉個例子:

>>> a = 4.2
>>> b = 2.1
>>> a + b
6.300000000000001
>>> (a+b) == 6.3
False
# 這次試試decimal
>>> from decimal import Decimal
>>> a = Decimal("4.2")
>>> b = Decimal("2.1")
>>> a + b
Decimal("6.3")
>>> print(a+b)
6.3
>>> (a + b) == Decimal("6.3")
True
數(shù)值的輸出格式化

如果只是想讓數(shù)值以固定的位數(shù)輸出,那么是用不著round()的。

>>> a = 1.23456
>>> format(a, "0.2f")
"1.23"
>>> format(a, "0.3f")
"1.234"

歡迎關(guān)注個人公眾號公子政的宅日常查看更多文章:

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/43961.html

相關(guān)文章

  • Python強(qiáng)大的語法支持

    摘要:浮點(diǎn)數(shù)計(jì)算不光對整數(shù)運(yùn)算提供了支持,同樣對我們俗稱的小數(shù)也提供了便利的運(yùn)算。但要注意的一點(diǎn)是有些版本對于浮點(diǎn)數(shù)是位數(shù)限制的對比下面兩張圖,所以可能會出現(xiàn)溢出或者未知報(bào)錯,在真正開發(fā)的過程中,盡量不要寫這種代碼否則背鍋。 學(xué)習(xí)任何一種編程語言,包括但不限于C、C++、Java、Python,我...

    adie 評論0 收藏0
  • Python創(chuàng)建數(shù)值列表

    摘要:創(chuàng)建數(shù)值列表上一篇文章列表處理下一篇文章字典處理可以產(chǎn)生一些列數(shù)值語法開始下標(biāo)包括結(jié)束下標(biāo)不包括步長實(shí)例結(jié)果利用將產(chǎn)生的數(shù)值轉(zhuǎn)化為列表實(shí)例結(jié)果列表解析快速生成數(shù)值列表語法實(shí)例實(shí)例結(jié)果 Python創(chuàng)建數(shù)值列表 上一篇文章:Python列表處理下一篇文章:Python字典處理 1、range range()可以產(chǎn)生一些列數(shù)值語法:range(開始下標(biāo)(包括),結(jié)束下標(biāo)(不包括)[,步長...

    MockingBird 評論0 收藏0
  • 真假美猴王-Numpy數(shù)據(jù)與Python數(shù)組的區(qū)別與聯(lián)系

    摘要:下文統(tǒng)一稱為數(shù)組是存儲單一數(shù)據(jù)類型的多維數(shù)組同語言數(shù)組直接保存數(shù)值而則是能夠?qū)?shù)組進(jìn)行處理的函數(shù)。動態(tài)數(shù)據(jù)類型與的數(shù)組和的這些不可變數(shù)據(jù)類型的適用場景等可變數(shù)據(jù)類型適用于需要不斷對原始數(shù)據(jù)進(jìn)行修改的場景。 showImg(https://segmentfault.com/img/remote/1460000018925396);Numpy,是python中的一個矩陣計(jì)算包,功能類似ma...

    鄒強(qiáng) 評論0 收藏0
  • Python 與 Unicode

    摘要:最近使用處理一些網(wǎng)絡(luò)相關(guān)的問題,被相關(guān)的一系列編碼問題搞得一頭霧水。與接下來是中對于字符串的處理。中的和在中,其類型規(guī)定了底層的數(shù)據(jù)結(jié)構(gòu),是位整數(shù)串,也即跟語言中的字符串類似。這些問題在中得到解決。 最近使用 Python 2 處理一些網(wǎng)絡(luò)相關(guān)的問題,被 Unicode, String 相關(guān)的一系列編碼問題搞得一頭霧水。在這里整理一下相關(guān)的概念吧。 ASCII Unicode UTF8...

    Tangpj 評論0 收藏0
  • SICP Python 描述 1.2 編程元素

    摘要:程序用于在編程社群的成員之間交流這些想法。在編程中,我們處理兩種元素函數(shù)和數(shù)據(jù)。在中,我們可以使用賦值語句來建立新的綁定,它包含左邊的名稱和右邊的值。例如,它并不能處理賦值語句。這些圖解的必要部分是函數(shù)的表示。 1.2 編程元素 來源:1.2 The Elements of Programming 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 編程語言是操作計(jì)算機(jī)來執(zhí)行任務(wù)...

    CoorChice 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<