📜  Python中的十进制函数 2(logical_and(),normalize(),quantize(),rotate()…)

📅  最后修改于: 2020-04-16 01:03:10             🧑  作者: Mango

一些十进制函数已在下面的设置1中进行了讨论
Python中的十进制函数 1
本文讨论了更多函数。
1. logical_and():此函数计算数字的数字逻辑“与”运算。数字只能具有值0或1
2. logical_or():此函数计算数字的数字逻辑“或”运算。数字只能具有值0或1
3. logical_xor():此函数计算数字的数字逻辑“ xor”运算。数字只能具有值0或1
4. logical_invert():此函数计算数字的位逻辑“反转”运算。数字只能具有值0或1

# Python代码来演示logical_and(),logical_or(),logical_xor()和logical_invert()的工作原理
# 导入“decimal"模块以使用十进制函数
import decimal
# 初始化十进制数
a = decimal.Decimal(1000)
# 初始化十进制数
b = decimal.Decimal(1110)
# 显示两个数字的逻辑和
print ("两个数字的logical_and()为 : ",end="")
print (a.logical_and(b))
# 打印两个数字的逻辑或
print ("两个数字的logical_or()是 : ",end="")
print (a.logical_or(b))
# 打印两个或两个的异或
print ("两个数的异或为 : ",end="")
print (a.logical_xor(b))
# 打印数字的逻辑反转
print ("数字的逻辑倒数是 : ",end="")
print (a.logical_invert())

输出:

两个数字的logical_and()为 : 1000
两个数字的logical_or()是 : 1110
两个数的异或为 : 110
数字的逻辑倒数是 : 1111111111111111111111110111

5. next_plus():此函数返回可以表示的最小数字大于给定数字。
6. next_plus():此函数返回可以表示的最大数字小于给定数字。

# Python代码演示next_plus()和next_minus()的工作方式
# 导入“decimal"模块以使用十进制函数
import decimal
# 初始化十进制数
a = decimal.Decimal(101.34)
# 打印实际的十进制数
print ("原来的十进制数是 : ",end="")
print (a)
# 使用next_plus()后打印号码
print ("大于当前数字的最小数字 : ",end="")
print (a.next_plus())
# 使用next_minus()后打印号码
print ("小于当前数字的最大数字 : ",end="")
print (a.next_minus())

输出:

原来的十进制数是 : 101.340000000000003410605131648480892181396484375
大于当前数字的最小数字 : 101.3400000000000034106051317
小于当前数字的最大数字 : 101.3400000000000034106051316

7. next_toward():该函数返回第二个参数方向上最靠近第一个参数数字。如果两个数字相等,则返回带有第一个数字符号的第二个数字。
8. normalize():此函数在擦除数字中所有最右边的尾随零后打印数字。

# Python代码演示next_toward()和normalize()的工作
# 导入“decimal"模块以使用十进制函数
import decimal
# 初始化十进制数
a = decimal.Decimal(101.34)
# 初始化十进制数
b = decimal.Decimal(-101.34)
# 初始化十进制数
c = decimal.Decimal(-58.68)
# 初始化十进制数
d = decimal.Decimal(14.010000000)
# 使用next_toward()打印数字
print ("在第二个数字的方向上最接近第一个数字的数字 : ")
print (a.next_toward(c))
# 使用next_toward()打印号码
# 相等时
print ("带第一个数字的符号的第二个数字是 : ",end="")
print (b.next_toward(a))
# 删除最右边的尾随零后的数字
print ("删除最右边的尾随零后的数字 : ",end="")
print (d.normalize())

输出:

在第二个数字的方向上最接近第一个数字的数字 :
101.3400000000000034106051316
带第一个数字的符号的第二个数字是 : -101.3400000000000034106051316
删除最右边的尾随零后的数字 : 14.01

9.quantize() :它返回一个值,该值等于具有第二个十进制值的指数的第一个十进制值(四舍五入)
10. same_quantum()如果两个数字都具有不同的指数,则此函数返回0;如果两个数字具有相同的指数,则此函数返回1。 

# Python代码演示Quantize()和same_quantum()的工作原理
# 导入“decimal"模块以使用十进制函数
import decimal
# 初始化十进制数
a = decimal.Decimal(20.76548)
# 初始化十进制数
b = decimal.Decimal(12.25)
# 初始化十进制数
c = decimal.Decimal(6.25)
# 打印量化的第一个数字
print ("量化的第一个数字是: ",end="")
print (a.quantize(b))
# 检查两个数字是否具有相同的指数
if (b.same_quantum(c)):
       print ("两个数字具有相同的指数")
else : print ("两个数字都有不同的指数")

输出: 

量化的第一个数字是 : 20.77
两个数字具有相同的指数

11. rotation():该函数将第一个参数旋转第二个参数中提到。如果第二个自变量的符号为正,则向左旋转否则向右旋转。第一个参数的符号不变。
12. shift():此函数第一个参数移动第二个参数中提到数量。如果第二个自变量的符号为正,则向左移动否则向右移动。第一个参数的符号不变。移位的数字替换为0

# Python代码演示rotate()和shift()的工作方式
# 导入“decimal"模块以使用十进制函数
import decimal
# 初始化十进制数
a = decimal.Decimal(2343509394029424234334563465)
# 使用rotate()旋转第一个参数,向右旋转2个位置
print ("旋转后的值为 : ",end="")
print (a.rotate(-2))
# 使用shift()移动第一个参数,向左旋转2个位置
print ("移位值是 : ",end="")
print (a.shift(2))

输出:

旋转后的值为 : 6523435093940294242343345634
移位值是 : 4350939402942423433456346500

13. restder_near():返回值“ 参数1 –(n * 参数2) “,其中n是最接近(参数1 / 参数2)结果的整数值。如果2个整数具有完全相似的接近度,则甚至选择一个。
14. scaleb():此函数第二个参数移动第一个数字的指数

# Python代码演示restder_near()和scaleb()的工作原理
# 导入“decimal"模块以使用十进制函数
import decimal
# 初始化十进制数
a = decimal.Decimal(23.765)
# 初始化十进制数
b = decimal.Decimal(12)
# 初始化十进制数
c = decimal.Decimal(8)
# 使用restder_near计算值
print ("使用restder_near()的计算值是 : ",end="")
print (b.remainder_near(c))
# 使用scaleb()转移指数
print ("移位指数后的值 : ",end="")
print (a.scaleb(2))

输出:

使用restder_near()的计算值是: -4
移位指数后的值 : 2376.500000000000056843418861