當前位置:首頁 » 編程語言 » python四捨五入取整

python四捨五入取整

發布時間: 2022-07-10 17:06:45

A. 在python中,x=10.347,函數round(x,2)的返回值是

10.35。

注意!注意!注意!round()並不是四捨五入,而是向最近值取整,如果與前後兩個整數的差值一樣,則會取偶數的一邊。

舉例:round(2.5)=2, round(3.5)=4。

附我的博客:

Python3中的地板除與浮點數四種取整方式

B. python中{1,2,3,4}是什麼數據類型

python中1234數據類型是整數int函數,浮點型布爾型復數型。整型就是整數類型的數,同數學里的十進制數好比表示年齡序號等優化,浮點型就是帶小數點的數同數學中的小數,好比表示圓周率3點1四重力加速度9點8等。

python中1234數據類型的特點

主要特別的地方就是float類型的數有一個函數round可以取整,roundab對float類型的數值a進行操作,小數點後保留b位有效數字四捨五入默認為1,complex類型也算是比較特殊的,Python中字元串可以進行直接的相加操作s加s1返回一個新的字元串stringstringpython中。

上面加小括弧不加小括弧都是正確的,以逗號隔開默認為元組,元組有個比較特別的規定元組中元素不允許被修改,典型的keyvalue類型數據,注意幾點其中key的值必須唯一,但是value的值可以不唯一,用花括弧進行包含花括弧後加分號結尾。

C. python 為什麼算除法自動取整了。如圖,計算10/a 自動保留到整數了。

在2.x版本都是這樣,會自動取整。

在3.x版本以上改了,結果保留浮點數。系統本身設計就這樣的。可以認為是開發python語言的開發者們任性,所以就這樣了

附:pyhton中除法的余數

v2.2以前,除(「/」)運算符的返回有兩種可能情況,分別是整型和浮點型。操作數的不同,是影響計算結果數據類型的關鍵。
以a/b為例,a、b均為整型,則結果返回整型;a、b任意一個是浮點型的話,則結果就是浮點型。
===========================
#pythonv2.7
>>>3/2,3.0/2,3.0/2.0
(1,1.5,1.5)
===========================

在某些場合,我們可能會期待a/b返回浮點型,可是由於某些不確定的因素,參與運算的a和b都是整型,這可能會帶來錯誤,顯然有精度上的損失。

v2.2以後,引入了「地板除」(「//」)運算符,從數值上講,它返回小於除法運算結果的最大整數;從類型上講,與"/"運算符返回類型邏輯一致。
而「/」運算符,沒有變化。
===========================
#pythonv2.7
>>>3/2,3.0/2,3//2,3.0//2
(1,1.5,1,1.0)
===========================

v3.x以後,「/」運算符被命名為「真除」,不再依據操作數類型選擇返回值類型,保證計算結果數值上的精度是第一位的。所以,無須再把操作數轉變成浮點型,以保證運算結果不被截斷小數部分。
「//」運算符,不變。
===========================
#pythonv3.2
>>>3/2,3.0/2,3//2,3.0//2
(1.5,1.5,1,1.0)
===========================

D. python怎麼四捨五入取整

舍入 int (3.75)舍入(3.75)舍入數學 ceil (3.75)分隔整數和小數. modf (3.75)

E. 簡單python代碼問題

你的代碼確實錯了幾處。

sqrt()是math中的函數,使用時應該為math.sqrt()

math.sqrt()的計算結果為浮點數,肯定不是int型的。

你的思想是把完全平方數開方,這樣應該得到一個小數部分為0的數。但小數部分為0,不一定是int型,int型並不是整數的意思。即1.0不是int型。此外,浮點數是有計算精度的,你做開方運算,有時候即便這個數明明就是個完全平方數,但計算機也很難得到一個恰好是小數部分為0的結果,而是諸如9.9999999999953的結果。所以,你的這種方法有一定局限性。

基於你的思路,不妨做一下修正。首先,按你的思路計算開平方,這樣原則上應該得到一個小數部分為0或者至少也是極其接近於小數部分為0的數。此時,對這個數四捨五入取整,然後再求其平方,看它是不是等於你的完全平方數即可。程序如下:

In[37]:importmath
In[38]:foriinrange(10000):
....:ifround(math.sqrt(i+100))**2==(i+100):
....:ifround(math.sqrt(i+268))**2==(i+268):
....:printi
....:
21
261
1581

F. python 如何控制輸出的小數長度

Python裡面小數點長度精度控制方法:

一、要求較小的精度

將精度高的浮點數轉換成精度低的浮點數。

1.round()內置方法

這個是使用最多的,剛看了round()的使用解釋,也不是很容易懂。round()不是簡單的四捨五入的處理方式。

For the built-in types supporting round(), values are rounded to the
closest multiple of 10 to the power minus ndigits; if two multiples are equally
close, rounding is done toward the even choice (so, for example, both round(0.5)
and round(-0.5) are 0, and round(1.5) is 2).

>>> round(2.5)

2

>>> round(1.5)

2

>>> round(2.675)

3

>>> round(2.675, 2)

2.67

round()如果只有一個數作為參數,不指定位數的時候,返回的是一個整數,而且是最靠近的整數(這點上類似四捨五入)。但是當出現.5的時候,兩邊的距離都一樣,round()取靠近的偶數,這就是為什麼round(2.5)
=
2。當指定取捨的小數點位數的時候,一般情況也是使用四捨五入的規則,但是碰到.5的這樣情況,如果要取捨的位數前的小樹是奇數,則直接舍棄,如果偶數這向上取捨。看下面的示例:

>>> round(2.635, 2)

2.63

>>> round(2.645, 2)

2.65

>>> round(2.655, 2)

2.65

>>> round(2.665, 2)

2.67

>>> round(2.675, 2)

2.67

2. 使用格式化

效果和round()是一樣的。

>>> a = ("%.2f" % 2.635)

>>> a

'2.63'

>>> a = ("%.2f" % 2.645)

>>> a

'2.65'

>>> a = int(2.5)

>>> a

2

二、要求超過17位的精度分析

python默認的是17位小數的精度,但是這里有一個問題,就是當我們的計算需要使用更高的精度(超過17位小數)的時候該怎麼做呢?

1. 使用格式化(不推薦)

>>> a = "%.30f" % (1/3)

>>> a

'0.'

可以顯示,但是不準確,後面的數字往往沒有意義。

2. 高精度使用decimal模塊,配合getcontext

>>> from decimal import *

>>> print(getcontext())

Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999,
capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero,
Overflow])

>>> getcontext().prec = 50

>>> b = Decimal(1)/Decimal(3)

>>> b

Decimal('0.')

>>> c = Decimal(1)/Decimal(17)

>>> c

Decimal('0.')

>>> float(c)

0.058823529411764705

默認的context的精度是28位,可以設置為50位甚至更高,都可以。這樣在分析復雜的浮點數的時候,可以有更高的自己可以控制的精度。其實可以留意下context裡面的這rounding=ROUND_HALF_EVEN
參數。ROUND_HALF_EVEN, 當half的時候,靠近even.

三、關於小數和取整

既然說到小數,就必然要說到整數。一般取整會用到這些函數:

1. round()

這個不說了,前面已經講過了。一定要注意它不是簡單的四捨五入,而是ROUND_HALF_EVEN的策略。

2. math模塊的ceil(x)

取大於或者等於x的最小整數。

3. math模塊的floor(x)

去小於或者等於x的最大整數。

>>> from math import ceil, floor

>>> round(2.5)

2

>>> ceil(2.5)

3

>>> floor(2.5)

2

>>> round(2.3)

2

>>> ceil(2.3)

3

>>> floor(2.3)

2

>>>

G. Python幾種取整的方法

向下取整

int(3.75)

四捨五入

round(3.75)

向上取整

math.ceil(3.75)

分離整數和小數

math.modf(3.75)

H. python 整列數據怎麼四捨五入保留整數

df.列名 = df.列名.apply(lambda x: round(x,0))

出來的結果數字會帶.0,如果要去掉,則可以用
df.列名 = df.列名.apply(lambda x: int(x))

I. python中四捨五入函數取整為什麼要加減0.5

是利用原來的向下取整的機制如果原來是<0.5的,那加上0.5還是沒進位。
實際上Python的round()函數可以接受兩個參數round(value,ndigits),第一個參數為實際操作數,第二個參數為實際保留幾位,如果第二個參數不填,則默認保留到整數位。
Python3.X對於浮點數默認的是提供17位數字的精度。

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:432
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:743
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:146
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:233
java駝峰 發布:2025-02-02 09:13:26 瀏覽:651
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:532
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726