零基础学编程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 条评论
登录 后参与评论

相关文章

来自专栏数据小魔方

函数|多条件求和——SUMPRODUCT函数

今天跟大家分享一个在多条件求和方面特别厉害的函数——SUMPRODUCT。 ▼ 也许大家对sum函数都很熟悉,知道它强大的求和功能。单数如果遇到多条件的求和场景...

2654
来自专栏飞总聊IT

SQL,想说爱你并不是太容易的事

不少人留言和留消息,只有一位差不多触及到了问题在哪里。公布一下答案之前先把题目贴一下。 ? ? ? 这道题目里面的坑主要在null这个东西。我们都知道SQL是基...

2678
来自专栏工科狗和生物喵

【计算机本科补全计划】指令:计算机的语言(MIPS) Part4

正文之前 这几天陪人玩去了,所以没怎么看书。今早某人回家了。所以我也就可以一个人继续开始在图书馆的浪荡之路了。爽歪歪!!!!而且可以一个人独占温暖的地方,实在...

3406
来自专栏算法channel

机器学习|快速排序思想求topk

01 — Topk by quicksort 问题是求出数据集中,按照某个规则定义的元素大小,取前k个元素。 为了简化起见,直接求数值型数组的前k个最大元素。...

3758
来自专栏数据小魔方

左手用R右手Python系列17——CSS表达式与网页解析

上一篇着重讲解了网页解析中的XPath表达式,今天这一篇主要讲解另一套网页解析语法——CSS路径表达式。 R语言与Python中都有支持CSS表达式的解析库,R...

3225
来自专栏Crossin的编程教室

【Python 第51课】 and-or技巧

今天介绍一个python中的小技巧:and-or 看下面这段代码: a = "heaven" b = "hell" c = True and a or b p...

2669
来自专栏程序员互动联盟

【答疑释惑】C语言里面结构体大小统计方法

之前说过一个关于结构体在内存中所占字节数的问题,我们知道结构体长度的计算并不是所有成员长度的相加,而是因为编译器优化会对其进行对齐,这样会优化访问速度等。 那...

2827
来自专栏老九学堂

零基础学Java第三讲变量

如何掌握了变量这个语法?看看微视频中对应的知识点的讲解。 别走开,下面有干货哦! 1了解什么是变量?变量如何使用? 2会使用常用的数据类型 任何编程语言的语...

2595
来自专栏owent

一个C++关于成员变量偏移地址的小Trick

注意带下划线&base_3::b那一行,木有错,这个值不是4,而是0。我看了一下生成的汇编,很遗憾地他直接 push 0进栈了。 而下面赋值的pm = &ba...

592
来自专栏牛客网

知识总结:那些年在编程题中踩过的坑循环输入输出处理常见问题对于各种语言的一些基本知识关于输出格式关于时间复杂度分析:最后关于 "我本地能通过,交上去就是不对"

循环输入输出处理常见问题 1、为什么需要循环输入输出:通常来说OJ对于每道题里面有.in和.out文件,分别表示测试数据的输入和输出。如果某些编程题的所有数据都...

3718

扫描关注云+社区