零基础学编程009:只显示2位小数

我们仍要继续解决这个问题:如何用Python打印这篇枯燥的《复利数据表》?

(1+0.01) ^ 1 = 1.01 (1+0.01) ^ 2 = 1.02 (1+0.01) ^ 3 = 1.03 ... ... (1+0.01) ^ 364 = 37.41 (1+0.01) ^ 365 = 37.78

学完《零基础学编程007:FOR循环》之后,我们已经可以输出这样五行数据:

(1+0.01) ^ 361 = 36.30913774096189 (1+0.01) ^ 362 = 36.672229118371504 (1+0.01) ^ 363 = 37.03895140955522 (1+0.01) ^ 364 = 37.409340923650774 (1+0.01) ^ 365 = 37.78343433288728

但有一个明显的问题,电脑计算得太太太精确了,每个数后面都拖着10多位的小数,而我们只要两位小数就够了,怎么办呢?

编程新手到这里可能就束手无策了,此时《“零基础学编程”都需要哪些基础?》里提到的2项技能就要发挥作用了。

1)英语基础

一种容易想到的办法是对第3位的小数部分进行四舍五入的运算,在英语里四舍五入叫round,小数在计算机的世界里经常被称为浮点数float。

2)搜索技能

现在需要google出场了,输入关键词“python round float”:

如果没有vpn,只能用某度试试了,你自己对比一下搜索结果吧。点击文末的“阅读原文”到stackoverflow上看看那篇排在第一位的详细答案有多详细吧,纯英文的。

3)立即到python 的IDLE中试试:

>>> round(36.30913774096189, 2) 36.31 >>> round(36.672229118371504, 2) 36.67

效果不错,大概意思很容易猜出来,round(x, 2)就是把x这个数保留两位小数。

4)把第7课《零基础学编程007:FOR循环》的代码抄过来,稍加修改,在python IDLE环境中执行一下,看看效果:

for i in [361,362,363,364,365] :
    print( "(1+0.01) ^", i, "=", round(1.01**i, 2) )

小结:

1)英语基础好绝对大有帮助

2)会用搜索,能够快速定位到有用的资源,节省大量的时间

3)立即在python IDLE中尝试,帮助快速理解代码的作用

4)知道了round(x, 2)函数的意思

5)多看看资料,实际上round(x)就是四舍五入的取整

6)联系到电子表格EXCEL,你也用过ROUND(x)函数吧?道理都是一样的,许多编程语言中的取整函数都叫round

7)在stackoverflow的原文中还提到了另一种更为通用的解决办法,是用format函数,这里先不介绍了

--- END ---

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-01-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java面试通关手册

一份送给Java初学者的指南

我自己总结的Java学习的系统知识点以及面试问题,目前已经开源,会一直完善下去,欢迎建议和指导欢迎Star: https://github.com/Snailc...

1463
来自专栏大数据和云计算技术

算法系列 图数据结构探索(无向图搜索)

算法是基础,小蓝同学准备些总结一系列算法分享给大家,这是第10篇《无向图搜索》,非常赞!希望对大家有帮助,大家会喜欢!

2014
来自专栏程序人生

重构:撰写合格的代码

在「代码重构之道」里,我犯了个懒,讨论了什么情况下需要考虑重构,以及工具和方法来促进重构,但对如何重构代码本身,或者说:如何把烂代码转化成好代码,或者至少是合格...

3578
来自专栏人工智能LeadAI

python与数据科学应用

数据科学简介与应用 数据科学主要以统计学、机器学习、数据可视化以及(某一)领域知识为理论基础,其主要研究内容包括数据科学基础理论、数据预处理、数据计算和数据管...

3695
来自专栏Java后端技术栈

开发中我们需要遵循的几个设计原则!

在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则和具体阐...

922
来自专栏java学习

Java每日一练(2017/8/10)

最新通知 ●回复"每日一练"获取以前的题目! ●【新】Android视频更新了!(回复【安卓视频】获取下载链接) ●【新】Ajax知识点视频更新了!(回复【学习...

2484
来自专栏

消失的魔术:隐藏在js引用和原型链背后的超级能力

js这门语言有很多诟病,然而很多被无视的点,构成了js最为美妙的语言特性。这篇文章将带你走进魔术般的引用型数据类型和原型链背后,寻找那些被遗忘的超能力。并且,基...

1102
来自专栏码农阿宇

设计模式快速学习(一)

UML类图 ? 简单工厂模式 1.1类图 ? 策略模式 2.1策略模式结构图 ? 2.2策略模式解析 策略模式时一种定义一系列算法的方法,从概念上看,所有这...

2543
来自专栏Dawnzhang的开发者手册

开发中我们需要遵循的几个设计原则!(转)

在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则和具体阐...

1282
来自专栏数据结构与算法

2105. [NOIP2015] 信息传递

★☆   输入文件:2015message.in   输出文件:2015message.out 简单对比 时间限制:1 s   内存限制:256 MB 【题...

2895

扫码关注云+社区