python函式每日一講 - float函式型別轉換詳解

pythontab發表於2018-09-19

函式描述

float([x]) 函式將數字或數字的字串表示形式轉換為與它等效的有符號浮點數。。如果引數x是一個字串(十進位制表示的數字串),數字前面可以新增符號來表示正數,或負數。符號和數字之間不能出現空格,但是符號前面和數字後面允許出現空格。

如果引數 x 是一個整數或是一個浮點數,則返回與它等效的浮點數;如果 x 超出了 float 型別的範圍,則引發 OverflowError 錯誤。

如果引數 x 預設,則返回 0.0

如果引數 x 是普通的Python物件,float([x]) 返回的是呼叫 x.__float __() 結果。

相容性

Python2.x

Python3.x

注意點

1. 這個函式有一個特別的地方,就是使用infinity或inf來表示無窮大的數。比如+inf是正無窮大,-inf是負無窮大。在這裡引入了數學上的無窮大概念,那麼無窮大乘以0是等於什麼呢?在這裡是等於nan,即not a number(不是一個數字)

2. 引數x可省略


英文文件

Return a floating point number constructed from a number or string x.


If the argument is a string, it should contain a decimal number, optionally preceded by a sign, and optionally embedded in whitespace. The optional sign may be '+' or '-'; a '+' sign has no effect on the value produced. The argument may also be a string representing a NaN (not-a-number), or a positive or negative infinity.

程式碼例項

>>> float('+123')
123.0
>>> float('+1.23')
1.23
>>> float('   -12345\n')
-12345.0
>>> float('1e-003')
0.001
>>> float('+1E6')
1000000.0
>>> float('-Infinity')
-inf
>>> float('inf')
inf
>>> float('-inf')
-inf
>>> float('+inf')
inf
>>> float('nan')
nan
>>> float('+nan')
nan
>>> float('-nan')
nan
>>> float()
0.0

程式碼例項2

class C:
    def __init__(self, score):
        self.score = score
    def __float__(slef):
        return 1.0 
c = C(100)
f = float(c)
print(f)

執行結果:

1.0


相關文章