如何在 Python 中将浮点数转换为整数?
pythonserver side programmingprogramming
在 Python 中,有两种数字数据类型:整数和浮点数。通常,整数没有小数点,基数为 10(即十进制)。而浮点数有小数点。Python 提供了一些内置方法来将浮点数转换为整数。在本文中,我们将讨论其中的一些方法。
使用 int() 函数
int() 函数通过删除小数点并仅保留整数部分,将浮点数转换为整数。此外,int() 函数不会将浮点值(如 49.8)四舍五入为 50。
示例
在示例中,小数点后的数据被消除,我们只有整数(整数)。
num = 39.98 print('num 的数据类型:', type(num).__name__) # float 到 int 的转换 num = int(num) print('转换后的值及其数据类型:', num,', type:', type(num).__name__)
输出
num 的数据类型:float 转换后的值及其数据类型:39 ,类型:int
示例
int() 函数接受整数字符串或浮点数,但不接受浮点数字符串。如果给出了浮点数字符串,首先我们需要使用 float() 函数将其转换为浮点数,然后将其应用于 int()。否则会引发 ValueError。
num = '1.5' print('num 的数据类型:', type(num).__name__) # float 到 int 的转换 num = int(num) print('转换后的值及其数据类型:', 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('num 的数据类型:', type(num).__name__) # 浮点到 int 的转换 num = int(float(num)) print('转换后的值及其数据类型:', num,', type:', type(num).__name__)
输出
num 的数据类型:str 转换后的值及其数据类型:1,类型:int
示例
在此示例中,int() 函数将浮点值四舍五入为下一个整数值。
num = 1.99999999999999999 print('num 的数据类型:', type(num).__name__) # 浮点型到整数型的转换 num = int(num) print('转换后的值及其数据类型:', num,', type:', type(num).__name__)
输出
num 的数据类型:浮点型 转换后的值及其数据类型:2,类型:int
使用数学模块截断函数
使用数学模块中的截断函数 trunc(),我们可以将浮点数转换为整数。
示例
从此示例中,我们已使用 math.trunc() 函数成功将浮点数转换为整数,该函数的工作原理与 int() 函数类似。我们还可以使用 numpy 库中的 math.ceil()、math.floor() 和 ndarray..astype(int) 方法将浮点数转换为 Python 中的整数数据类型。
from math import trunc num = 7.12 print('num 的数据类型:', type(num).__name__) # 浮点数到整数转换 num = trunc(num) print('转换后的值及其数据类型:', num,', type:', type(num).__name__)
输出
num 的数据类型:浮点数 转换后的值及其数据类型:7,type:int