注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

永福的技术博客

Linux运维

 
 
 

日志

 
 

python计算中浮点数的输出  

2011-07-03 18:38:24|  分类: 软件编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
永福的读书笔记
书        名 Learn Python The Hard Way, 2nd Edition 
章        节 Exercise 3: Numbers And Math 

在这一章的Extra Credit部分,有一道题要求将计算出的浮点型数字输出,不会,所以google之。

原来Python中可像在C中一样,借助格式串来控制浮点数的输出。共有e/E、f和g三种格式转换符控制浮点数的输出,f用小数形式输出,e用指数形式输出,用g的话当幂大于或等于所给的精度时用科学计数法表示,否则用小数。e、f和g在小数位数方面有什么不同呢?我试验了一下(Python版本是2.7.2):
python计算中浮点数的输出 - 永福 - 永福的技术博客
对e/f/g都指定精度为3,结果e输出了4位有效数字(3位小数),f输出了3位小数,g输出了3位有效数字。再来一例:
python计算中浮点数的输出 - 永福 - 永福的技术博客
e和f依旧输出3位小数。但g只输出了两位有效数字,是因为再多的有效数字都是结尾的零,为了好看就没有输出。下例也证明了这个说法:
python计算中浮点数的输出 - 永福 - 永福的技术博客
上面两例中,e和f都忠诚地输出了无用的零,但g却尽可能输出简洁的结果。

f这种输出固定小数位数的方式在某些地方是有用的,比如一系列代表权重的数字,我们希望它们的小数位数一样,这样加起来能够正好等于1。在类似场景中,e也同样适用。g可以给出最清晰的输出,但是不保证输出结果中有效数字位数或者小数位数等于指定的“精度”。

另外,既然print格式串能够控制输出小数位数,在程序中就不需要round函数了,这样可以保证计算的精度。只需在输出的时候用print格式串来控制小数位数。

  评论这张
 
阅读(7638)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017