㈠ python math.ceil 得到的是什麼類型值
float類型,返回值是比大於等於傳入值的整數的float類型。比如5.1返回6.0,5.0返回5.0
㈡ 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
>>>
㈢ python如何讓大於1.1小於2的數等於2
math.ceil(1.2) 得到的是 2.0,仍然是小數,需要再用int函數轉換為整數。
即 int(math.ceil(1.2)) 得到的才是2。
根據你的例子,下面自定義了一個函數convert,僅支持正數。
importmath
defconvert(num):
""".1."""
ifround(num-math.floor(num),1)>0.1:
returnint(math.ceil(num))
else:
returnnum
a,b,c=2.0,2.1,2.2
printconvert(a)
printconvert(b)
printconvert(c)
本例中所示,convert函數對於入參為2.0 或 2.1,返回其本身,不做轉換;入參為2.2,則返回正整數3。
㈣ python 如何向上取整
python向上取整
相關推薦:《Python教程》
方法:
Pythonmatch.ceil函數
ceil(x)函數是向上取整,即取大於等於x的最接近整數。
import math
math.ceil(float(1)/2)
㈤ python有什麼辦法使得 int 按照"四捨五入"的方式取整嗎
1、通常,python四捨五入使用內置的round函數就可以了。
㈥ python中如何進行開方運算
1、python中使用pow函數求n的n方根。首先打開python的編輯器,新建一個python 3的文件:
㈦ python新手代碼問題
判斷元素與集合歸屬關系可以直接用in,python內建的循環會幫你處理比較:
國家="中國"
a = ["美國","加拿大","澳大利亞"]
b = ["中國","日本","印度"]
if 國家 in a:
print("a")
elif 國家 in b:
print("b")
else:
print("ERROR")
用python做圖形界面,然後還要發布為應用程序的話,有很多框架,比如Qt for Python,也就是常說的PyQt。比較推薦這個,因為算是目前比較流行的,而且不難入門,具體可以在網路上搜Qt或者PyQt,到官網去下載框架。
PyQt下載:https://riverbankcomputing.com
一些教程:
http://code.py40.com/1948.html(這個是翻譯的)
http://zetcode.com/gui/pyqt5/(這個是源教程)
當然還有很多,網上搜PyQt教程就可以。
㈧ python中的ceil函數問題
importmath
這樣就OK拉