如何在 Python 中将浮点数转换为整数?
在 Python 中,有两种数字数据类型:整数和浮点数。一般来说,整数没有小数点,基值为 10(即十进制)。而浮点数则有小数点。Python 提供了一些内置方法来将浮点数转换为整数。在这篇文章中,我们将讨论其中的一些。
使用 int() 函数
int() 函数通过去除小数点并只保留整数部分来将浮点数转换为整数。此外,int() 函数不会像 49.8 那样将浮点值向上舍入到 50。
示例
在这个示例中,小数点后的数据被删除,我们只有整数(整数)。
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
示例
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, innum = int(num) ValueError: invalid literal for int() with base 10: '1.5'
示例
在某些情况下,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
示例
在这个示例中,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() 函数。我们还可以使用 math.ceil()、math.floor() 和 numpy 库中的 ndarray..astype(int) 方法将浮点数转换为 Python 中的整数数据类型。
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
广告