如何在 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, in 
    num = 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

更新于: 2023-08-23

2K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告