英文文档
lassfloat([x])
Return a floating point number constructed from a number or stringx.
float()
1、函数功能将一个数值或者字符转换成浮点型数值。
>>> float(1)1.0>>> float('1')1.0
2、不提供参数的时候,返回0.0。
>>> float()0.0
3、字符串必须能正确转换成浮点型数值的,否则报错。
>>> float('3.14.15926')Traceback (most recent call last): File "
", line 1, in float('3.14.15926')ValueError: could not convert string to float: '3.14.15926'
4、字符串中允许出现“+”、“-”两个符号,两个符号和数字之间不能出现空格,但是符号前面和数字后面允许出现空格。
>>> float('+3.14') #带正号3.14>>> float('-3.14') #带负号-3.14>>> float(' -3.14 ') #正负号前、数字后可以有空格-3.14>>> float('- 3.14') #正负号与数字间不可以有空格Traceback (most recent call last): File "
", line 1, in float('- 3.14') #正负号与数字间不可以有空格ValueError: could not convert string to float: '- 3.14'
5、有几个特殊的字符串能正确转换,”Infinity”或者“inf”(不区分大小写),能正确转换,表示无穷大,可以和“+”、“-”一起使用;“nan”也能正确转换,表示没有值。
>>> float('Infinity')inf>>> float('inf')inf>>> float('inFinIty') #不区分大小写inf>>> float('+inFinIty') #正无穷inf>>> float('-inFinIty') #负无穷-inf>>> float('nan') #没有值nan
6、定义的对象如果要被float函数正确转换成浮点数,需要定义__float__函数。
>>> class X: def __init__(self,score): self.score = score >>> x = X(9.9)>>> float(x) #不能转换Traceback (most recent call last): File "
", line 1, in float(x) #不能转换TypeError: float() argument must be a string or a number, not 'X'>>> class X: #重新定义类,加入__float__方法 def __init__(self,score): self.score = score def __float__(self): return self.score>>> x = X(9.9)>>> float(x) #可以转换9.9
小结
希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。
领取专属 10元无门槛券
私享最新 技术干货