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

相关文章