Python 如何将浮点数转换为整数
在Python中,有两种数字数据类型:整数和浮点数。一般来说,整数没有小数点,基值为10(即十进制)。而浮点数带有小数点。Python提供了一些内置方法来将浮点数转换为整数。本文将讨论其中的一些方法。
使用int()函数
int()函数可以将浮点数转换为整数,通过去除小数并保留整数部分。同时,int()函数不会将浮点数值如49.8四舍五入为50。
示例1
在示例中,小数点后的数据被删除,只剩下整数部分(整数)。
num = 39.98
print('Data type of num:', type(num).__name__)
# float to int conversion
num = int(num)
print('Converted value and its data type:', num,', type:', type(num).__name__)
输出
Data type of num: float
Converted value and its data type: 39 , type: int
示例2
int()函数接受一个整数字符串或一个浮点数,但不接受浮点字符串。如果给定一个浮点字符串,首先我们需要使用float()函数将其转换为浮点数,然后应用于int()函数。否则,将引发ValueError。
num = '1.5'
print('Data type of num:', type(num).__name__)
# float to int conversion
num = int(num)
print('Converted value and its data type:', num,', type:', type(num).__name__)
输出
Data type of num: str
Traceback (most recent call last):
File "/home/cg/root/67537/main.py", line 6, in
num = int(num)
ValueError: invalid literal for int() with base 10: '1.5'
示例3
在某些情况下,int()函数的行为是不可预测的,对于一些输入的浮点数值,它可能会将结果四舍五入为小于或等于输入的浮点数值的整数。
num = '1.5'
print('Data type of num:', type(num).__name__)
# float to int conversion
num = int(float(num))
print('Converted value and its data type:', num,', type:', type(num).__name__)
输出
Data type of num: str
Converted value and its data type: 1 , type: int
示例4
在此示例中,int() 函数将浮点值四舍五入为最接近的整数值。
num = 1.9999999999999999
print('Data type of num:', type(num).__name__)
# float to int conversion
num = int(num)
print('Converted value and its data type:', num,', type:', type(num).__name__)
输出
Data type of num: float
Converted value and its data type: 2 , type: int
使用math模块的截断函数
使用math模块的截断函数trunc() ,我们可以将浮点数转换为整数。
示例
通过这个例子,我们成功地使用math.trunc()函数将浮点数转换为整数,该函数与int()函数类似。此外,我们还可以使用numpy库中的math.ceil()、math.floor()和ndarray.astype(int)方法将浮点数转换为整数数据类型。
from math import trunc
num = 7.12
print('Data type of num:', type(num).__name__)
# float to int conversion
num = trunc(num)
print('Converted value and its data type:', num,', type:', type(num).__name__)
输出
Data type of num: float
Converted value and its data type: 7 , type: int