Python 如何将浮点数转换为整数

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程