下面是详细讲解Python浮点数取整、格式化和NaN处理的操作方法的完整攻略。
浮点数取整
Python中有三个常用的函数用来对浮点数进行取整操作,分别是round()
、ceil()
和floor()
。
round()
round()
函数用于四舍五入取整,语法如下:
round(number[, ndigits])
number
表示要进行取整的浮点数,ndigits
表示保留小数点后几位,默认为0。当ndigits
为正数时,会进行四舍五入操作并保留对应位数的小数;当ndigits
为负数时,会将整数部分按照对应位数进行四舍五入操作。
示例:
>>> round(3.14159) # 不指定 ndigits
3
>>> round(3.14159, 2) # 保留两位小数
3.14
>>> round(333.14159, -1) # 将整数部分按照十位进行四舍五入操作
330.0
ceil()
ceil()
函数用于向上取整,即返回不小于评价的最小整数,语法如下:
import math
math.ceil(x)
x
表示要进行取整的浮点数。
示例:
>>> import math
>>> math.ceil(3.14159)
4
>>> math.ceil(3)
3
floor()
floor()
函数用于向下取整,即返回不大于评价的最大整数,语法如下:
import math
math.floor(x)
x
表示要进行取整的浮点数。
示例:
>>> import math
>>> math.floor(3.14159)
3
>>> math.floor(3)
3
浮点数格式化
Python中可以使用format()
函数对浮点数格式化输出,format()
函数可以灵活地控制格式,语法如下:
format(value, format_spec)
value
表示要进行格式化的浮点数,format_spec
表示格式化规范。
format_spec
可以由多个元素组成,每个元素用英文半角冒号分隔,其中最常见的有三个元素:
width
:表示输出的总宽度,可以使用数字或者*
(表示使用后面的参数指定宽度)。precision
:表示小数点后保留的位数。type
:表示输出类型,可以有s
(字符串)、f
(浮点数)、d
(十进制整数)、x
(十六进制整数)等等。
示例:
>>> x = 3.14159
>>> print("{:.2f}".format(x)) # 保留两位小数
3.14
>>> print("{:10.2f}".format(x)) # 保留两位小数,宽度为10
3.14
>>> print("{:*<10.2f}".format(x)) # 保留两位小数,宽度为10,左对齐,使用*填充
3.14******
>>> print("{:{}{}.{}}".format(x, '>', 10, 2)) # 指定输出类型为浮点数,宽度为10,小数点后保留两位
3.14
NaN处理
NaN是一个特殊的浮点数值,表示不是一个数(Not a Number)。在进行浮点数计算时,经常会出现NaN。在Python中,可以使用math
模块中的函数对NaN进行处理。
判断NaN
判断一个数是否为NaN,可以使用math.isnan()
函数,语法如下:
import math
math.isnan(x)
x
表示要判断的数值。
示例:
>>> import math
>>> math.isnan(0/0) # 0/0 为NaN
True
>>> math.isnan(float('inf')/float('inf')) # inf/inf 也是NaN
True
>>> math.isnan(1)
False
替换NaN
将NaN替换为指定的值,可以使用math.isnan()
函数,语法如下:
import math
math.isnan(x)
x
表示要替换的数值,y
表示要替换为的值。
示例:
>>> import math
>>> x = float('nan')
>>> math.isnan(x)
True
>>> math.nan_to_num(x) # 将NaN替换为0
0.0
>>> math.nan_to_num(x, nan=1) # 将NaN替换为1
1.0
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python浮点数取整、格式化和NaN处理的操作方法 - Python技术站