python之模块:decimal,,#-*-coding


#-*-coding:utf-8-*-
__author__=‘Administrator‘
#数学计算
importdecimal#用于定点和浮点运算
#文档:https://docs.python.org/2.7/library/decimal.html?highlight=decimal#module-decimal
#使用from_float()可以精确的把小数进行转换
fmt=‘{0:<25}{1:<25}‘
printfmt.format(‘INPUT‘,‘output‘)
printfmt.format(‘-‘*25,‘-‘*25)
printfmt.format(5,decimal.Decimal(5))
printfmt.format(‘3.14‘,decimal.Decimal(‘3.14‘))
printfmt.format(repr(.1),decimal.Decimal(str(.1)))
f=0.1
printfmt.format(‘%.23g‘%.1,str(decimal.Decimal.from_float(f))[:25])
#decimal.Decimal还可以元组,0表示正的,1表示负的,数字tuple和一个整数指数
t=(1,(1,1),-2)
print‘inpt:‘,t
printdecimal.Decimal(t)
#说明:是一种可移植的方式,可以导出小数值而且不会损坏精度,元组在网络上传输,或者在不支持精确小数数据库中存储
#计算(给几个简单的例子)
print
a=decimal.Decimal(‘2‘)
b=decimal.Decimal(‘1.2‘)
printstr(a),str(b)
printa+b,a-b,b*a,a/b,a%b
#特殊值
print
fortszin[‘Infinity‘,‘NaN‘,‘0‘]:
printdecimal.Decimal(tsz),decimal.Decimal(‘-‘+tsz)
printdecimal.Decimal(‘NaN‘)==decimal.Decimal(‘Infinity‘)
#上下文
print
#获取当前全局上下文,getcontext()
importpprint
con=decimal.getcontext()
printcon.Emax
printcon.Emin
printcon.capitals#1
printcon.prec#28
printcon.rounding#ROUND_HALF_EVEN
pprint.pprint(con.traps)
#返回以下内容:
"""
{<class‘decimal.Clamped‘>:0,
<class‘decimal.InvalidOperation‘>:1,
<class‘decimal.DivisionByZero‘>:1,
<class‘decimal.Inexact‘>:0,
<class‘decimal.Rounded‘>:0,
<class‘decimal.Subnormal‘>:0,
<class‘decimal.Overflow‘>:1,
<class‘decimal.Underflow‘>:0}
"""

python之模块:decimal

相关内容

    暂无相关文章

评论关闭