📜  Python中的小数函数 |设置 1(1)

📅  最后修改于: 2023-12-03 15:04:36.234000             🧑  作者: Mango

Python中的小数函数 | 设置 1

在Python中,小数是一种常见的数字类型。在处理小数时,我们可能需要使用各种函数来进行计算、转换、比较等操作。在本文中,我们将介绍一些Python中常用的小数函数。

1. decimal模块

Python的decimal模块提供了一个Decimal类,用于高精度小数的计算。相比于内置的float类型,Decimal类型可以避免精度损失,并支持各种小数计算。

创建Decimal对象

使用decimal库的Decimal()函数可以创建Decimal对象,如下所示:

import decimal

# 创建一个Decimal对象
x = decimal.Decimal('0.1')
print(x)

输出为:

0.1
小数计算

使用Decimal对象时,可以进行各种小数计算,如加、减、乘、除等,并且不会出现精度问题。以下是一些示例代码:

import decimal

# 加法
a = decimal.Decimal('0.1')
b = decimal.Decimal('0.2')
c = a + b
print(c)  # 0.3

# 减法
d = decimal.Decimal('1.2345')
e = decimal.Decimal('0.1234')
f = d - e
print(f)  # 1.1111

# 乘法
g = decimal.Decimal('2.5')
h = decimal.Decimal('3')
i = g * h
print(i)  # 7.5

# 除法
j = decimal.Decimal('1')
k = decimal.Decimal('3')
l = j / k
print(l)  # 0.3333333333333333333333333333
小数保留位数

使用Decimal对象时,可以通过设置精度位数来保留小数的位数。在Decimal类中默认的精度为28位,但是我们可以通过getcontext()函数来设置全局的精度,也可以通过quantize()函数来设置局部的精度。

全局精度

通过getcontext()函数可以获取当前的精度设置,也可以通过该函数来设置全局的精度。

import decimal

# 获取全局精度
c1 = decimal.getcontext()
print(c1.prec)  # 28

# 设置全局精度
c2 = decimal.getcontext()
c2.prec = 4
x = decimal.Decimal('1') / decimal.Decimal('3')
print(x)  # 0.3333

局部精度

通过quantize()函数可以设置局部的精度,保留小数到指定的位数。

import decimal

x = decimal.Decimal('1.2345')
# 设置精度为2位
y = x.quantize(decimal.Decimal('0.01'))
print(y)  # 1.23

# 设置精度为1位
z = x.quantize(decimal.Decimal('0.1'))
print(z)  # 1.2
2. math模块

Python的math模块提供了各种数学函数,可以用来进行小数的运算、转换和比较等操作。以下是一些常用的小数函数:

数值转换

math模块提供了一些函数,可以用来在不同进制的数字之间进行转换。

import math

# 将十进制小数转换为二进制
x = 0.625
y = math.frexp(x)
print(y)  # (0.625, -1)

# 将二进制小数转换为十进制
x = (0, -1)
y = math.ldexp(*x)
print(y)  # 0.625
取整函数

math模块提供了多种取整函数,可以用来对小数进行取整操作。

import math

x = 3.1415926

# 向下取整
y = math.floor(x)
print(y)  # 3

# 向上取整
z = math.ceil(x)
print(z)  # 4

# 四舍五入
w = round(x, 2)
print(w)  # 3.14
指数函数

指数函数用来计算一个数的指数值。

import math

x = 2
y = math.exp(x)
print(y)  # 7.38905609893065
对数函数

对数函数用来计算一个数的对数值。

import math

x = 2
y = math.log(x, 10)  # 计算以10为底的对数
print(y)  # 0.3010299956639812
三角函数

三角函数用来计算角度的正弦、余弦、正切等值。

import math

x = math.pi / 4
y = math.sin(x)
print(y)  # 0.7071067811865475

z = math.cos(x)
print(z)  # 0.7071067811865476

w = math.tan(x)
print(w)  # 0.9999999999999999
3. 总结

这篇文章介绍了Python中常用的小数函数,包括decimal模块和math模块。我们可以使用这些函数来进行小数的运算、转换和比较等操作,从而更加方便地处理小数数据。