# -*- coding: utf-8 -*-
__author__ = 'Administrator'
#数学计算
import decimal#用于定点和浮点运算
#文档:https://docs.python.org/2.7/library/decimal.html?highlight=decimal#module-decimal
#使用from_float()可以精确的把小数进行转换
fmt='{0:<25} {1:<25}'
print fmt.format('INPUT','output')
print fmt.format('-'*25,'-'*25)
print fmt.format(5,decimal.Decimal(5))
print fmt.format('3.14',decimal.Decimal('3.14'))
print fmt.format(repr(.1),decimal.Decimal(str(.1)))
f=0.1
print fmt.format('%.23g'%.1,str(decimal.Decimal.from_float(f))[:25])
#decimal.Decimal还可以元组,0表示正的,1表示负的,数字tuple和一个整数指数
t=(1,(1,1),-2)
print 'inpt:',t
print decimal.Decimal(t)
#说明:是一种可移植的方式,可以导出小数值而且不会损坏精度,元组在网络上传输,或者在不支持精确小数数据库中存储
#计算(给几个简单的例子)
print
a=decimal.Decimal('2')
b=decimal.Decimal('1.2')
print str(a),str(b)
print a+b,a-b,b*a,a/b,a%b
#特殊值
print
for tsz in ['Infinity','NaN','0']:
    print decimal.Decimal(tsz),decimal.Decimal('-'+tsz)
print decimal.Decimal('NaN')==decimal.Decimal('Infinity')
#上下文
print
#获取当前全局上下文,getcontext()
import pprint
con=decimal.getcontext()
print con.Emax
print con.Emin
print con.capitals#1
print con.prec#28
print con.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的更多相关文章

  1. python基础-模块

    一.模块介绍                                                                                              ...

  2. python 各模块

    01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 语言支 ...

  3. Day5 模块及Python常用模块

    模块概述 定义:模块,用一砣代码实现了某类功能的代码集合. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,提供了代码的重用性.在Python中,一个.py文件就称之为一个模块(Mod ...

  4. Day6 模块及Python常用模块

    模块概述 定义:模块,用一砣代码实现了某类功能的代码集合. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,提供了代码的重用性.在Python中,一个.py文件就称之为一个模块(Mod ...

  5. python float转为decimal

    73.2413793103 ======= 73.2414 <type 'float'> ======= <class 'decimal.Decimal'> 当断言这两个值相等 ...

  6. Python常用模块-时间模块(time&datetime)

    Python常用模块-时间模块(time & datetime) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.初始time模块 #!/usr/bin/env pyth ...

  7. Python标准模块--threading

    1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...

  8. Python的模块引用和查找路径

    模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中 ...

  9. Python Logging模块的简单使用

    前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...

  10. Python标准模块--logging

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

随机推荐

  1. [ES6] Class Inherit

    In constructor, you can call parent's constuctor() method by supert(); class ShoppingCart { construc ...

  2. javascript eval和JSON之间的联系(转)

    eval函数的工作原理 eval函数会评估一个给定的含有JavaScript代码的字符串,并且试图去执行包含在字符串里的表达式或者一系列的合法的JavaScript语句.eval函数将把最后一个表达式 ...

  3. 编译lua5.3.2报错提示libreadline.so存在未定义的引用解决方法

    从官网上下载5.3.2的源码后,make linux进行编译,提示报错: gcc -std=gnu99 -o lua lua.o liblua.a -lm -Wl,-E -ldl -lreadline ...

  4. Java多线程练习

    国际惯例,先贴出代码 package jiankong; import java.util.Date; public class jiankong { public static void main( ...

  5. 微信企业号 出现redirect_uri unauthorized 50001 解决办法

    在企业号内获得用户信息时,需要对域名授权,如果不授权会提示: redirect_uri unauthorized  50001 错误. 通常,我们会在 输入我们的授权域名. 今天在企业号内又新建了一个 ...

  6. tomcat 远程 调试 eclipse

    windows系统: 修改catalina.bat   端口9000 SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE ...

  7. ios中模拟延时的几种方法

    - (void)delay1 {     // 延迟执行不要用sleep,坏处:卡住当前线程     [NSThread sleepForTimeInterval:3];     NSLog(@&qu ...

  8. Chrome调试nodejs

    1.安装node-inspector 命令: npm install -g node-inspector 2.nodemon --debug xxx.js启动项目(如果使用--debug-brk 就会 ...

  9. css中的颜色值

    下面是比较适合在测试页面中用来设置背景颜色的淡颜色,最好记住一些,dark.blue.red.green.gray.olive颜色较深.

  10. 重写Collections实现自定义排序

    Collections.sort(List<Object>, new Comparator<Object>() { public int compare(Object o1, ...