控制Python浮点数输出位数

在Python的一些长效任务中,不可避免的需要向文本文件、二进制文件或者数据库中写入一些数据,或者是在屏幕上输出一些文本,此时如何控制输出数据的长度是需要我们注意的一个问题。比如对于一个二进制文件,如果输出的浮点数长度一直在发生变化,则写入到文件之后,读取的人按照比特位进行读取就会读到一堆错误的数据。因此,我们需要控制输出位数,尤其是浮点数要格外小心。

常规控制方法

一般情况下,我们可以通过round来设置输出浮点数的有效数字,其原理是对于一个给定的浮点数直接取前n位的有效数字,后续的数字四舍五入。而%.4f和{:.4f}这两种格式化,是在输出时取小数点后4位打印,跟先取有效数字再打印是不一样的,后面会提到。先看下这几个方式的输出异同点:

In [1]: pi_10=31.415926

In [2]: print (round(pi_10,4))
31.4159

In [3]: print ('%.4f' % pi_10)
31.4159

In [4]: print ('{:.4f}'.format(pi_10))
31.4159

上面的例子是小数点前和小数点后都有多位数字,另外类似的可以看下小数点前只有0的数字的输出结果:

In [5]: pi_10=0.31415926

In [6]: print (round(pi_10,4))
0.3142

In [7]: print ('{:.4f}'.format(pi_10))
0.3142

In [8]: print ('%.4f' % pi_10)
0.3142

在上面的两个案例中,我们发现三者的输出结果都是一样的。但是前面提到了先取有效数字再输出,跟先输出再取有效数字的区别,可以通过下面的一个案例体现出来:

In [9]: pi_10=3.1415926E-08

In [10]: print (round(pi_10,4))
0.0

In [11]: print ('{:.4f}'.format(pi_10))
0.0000

In [12]: print ('%.4f' % pi_10)
0.0000

这里的输入是一个小数点后有很多0的浮点数,但是这里用的是科学计数法,也就是3.1415926∗10−8,此时我们用这三种输出方式,得到的结果全都是0,而且第一种方案更是直接小数点后都没满4位。这是因为在用round取有效数字时,发现小数点后的数字太多,把当前的浮点数直接当成了0.0而不是0.0000,而后面两个方案的过程更像是在打印出来这个数字之后,再把超过有效位数的数字去掉,因此会保留小数点后的4个0。但是,即使如此,得到的结果也不是我们所想要的结果。因为这个数字虽然很小,但是可能只是由于单位问题,并不代表这个数字产生的影响就是0,因此直接用这种取小数点后有效数字的方法可能会出问题。

取有效数字

这里我们要介绍的取有效数字的方法,不再是去小数点后的有效数字,而是整体的有效数字。方法也很简单,就是把上一个章节中的{:.4f}改成{:.4},同样的可以通过这么几个案例来理解控制有效数字的结果:

In [13]: pi_10=3.1415926E-08

In [14]: print ('{:.4}'.format(pi_10))
3.142e-08

In [15]: pi_10=0.31415926

In [16]: print ('{:.4}'.format(pi_10))
0.3142

In [17]: pi_10=31.415926

In [18]: print ('{:.4}'.format(pi_10))
31.42

我们发现,输出的结果会根据输入的格式改变而改变,如果输入的小数位0过多,输出结果会被自动转换成科学计数法。而不仅仅是针对浮点数,{:.4}还可以作用在字符串中,效果如下:

In [19]: string='Hello World!'

In [20]: print ('{:.4}'.format(string))
Hell

总结概要

在python的输出结果中,尤其是浮点数的输出,当我们需要写入文本文件时,最好是采用统一的输出格式,这样也能够增强结果的可读性。而对于浮点数输出位数的控制,可以通过{:.4f}、%.4f来指定打印或者输出时的字符串占据空间,也可以通过round函数来对输出前的结果进行转化。而如果是取有效数字,需要用到{:.4},这几种方法没有优劣,只有看不同的场景,选取不同的精度控制方案。

本文链接:https://www.dzdvip.com/33639.html 版权声明:本文内容均来源于互联网。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 395045033@qq.com,一经查实,本站将立刻删除。
(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年6月4日 15:16
下一篇 2022年6月4日 15:30

相关推荐

  • SEO优化工具有哪些比较实用?

    做seo内容的产出很关键,但往往有些人无法一直进行原创内容输出,这时使用工具就是一个比较好的选择,5118的智能原创功能可以对素材进行智能段落搜索,也可以对已有内容进行一键改写,同时可以生成三种模型,根据自身的需求选择原创度模型即可。

    2021年5月2日
    20
  • 家用打印机该怎么选?

    随着互联网的不断发展,在线办公和远程教育逐渐火热。平日里“无人问津”的打印机设备现如今成为了很多家庭用户的刚需,无论是打印文档还是给孩子打印习题都能派上用场,那么选购一台打印机应该如何考虑呢? 对于打印机我们并不陌生,无论是工作还是生活只要涉及到纸质文档,那么就一定需要打印机设备。平时打印、复印以及扫描都离不开打印机,一台功能强大的打印机可以让办公效率大幅度提升。 对于家庭用户也亦是如此,眼下学校老师布置的很多作业都需要通过家长打印出来,家里没有打印机就很不方便。经常去文印店打印并不能解决问题,而且打印成本较高。这样看来家里有台打印机就可以方便很多,可以解决日常的打印难题。 不妨看看墨仓类打印产品 想要给家里挑选一台打印机?那么不妨看看墨仓类打印机。有朋友可能会有疑问,究竟何为墨仓类打印机?其实顾名思义,墨仓类打印机就是特指那些支持超大容量墨仓的喷墨打印机,可以轻松实现单套耗材超高打印量和超低的打印成本,并且用户可以享受包含打印头在内的原厂整机保修服务,为用户彻底解决了打印机在购买后使用成本巨高不下的问题。 说到墨仓式打印机就不得不提到爱普生, 其实早在2011年就在中国市场主动推出了可以打印数千页的墨仓式打印机,从此成为了打印机市场的一批黑马。 今天给大家推荐爱普生L3153这款机型,印量够大同时成本够低。在印量方面黑色印量为4500页,而彩色印量高达7500页,对于有经常打印彩色照片的用户来说是个不错的选择。高印量的同时也为用户带来了更低的成本,综合计算下来单页的成本在1分钱左右。 考虑这几点,让它更适合家用 1、打印方式 随着互联网的发展,很多电子产品都变得智能化,打印机设备也不例外。现如今很多打印机都支持移动打印功能,让打印方式变得更加灵活多样。 以惠普的微信小程序打印功能为例,在微信小程序的主页面中,我们看到了打印功能大致可分为两大部分。其中包括文件打印和图片打印,目前文档打印支持聊天记录打印、百度网盘以及本地存储三种方式,而图片打印功能共分为四部分,分别为拍照打印、手机相册打印、聊天记录打印以及百度网盘等方式,可以说功能十分全面。 无论是在办公室或者家里,都可以随时随地使用微信远程连接打印机进行打印,大大提高了远程办公的效率,同时又能远程给家中的孩子打印习题,让工作和生活都更加便捷。 2、体积和重量 其实对于很多家庭用户来说,打印机的机身体积和重量十分重…

    2021年8月10日
    13
  • 2021年是什么年(2021年是什么年什么生肖的年)

    今天是公历2021年2月12日,农历“辛丑牛年” 大年正月初一,人们见面互祝“新年好”“牛年大吉”等新年问候。那么,这个农历年为何被称为“辛丑牛年”呢? 中国古代的纪年方法叫“干支纪年”,是在“十天干”和“十二地支”的基础上建立起来的。“十天干”由“甲、乙、丙、丁、戊、己、庚、辛、壬、癸”组成,“十二地支”由“子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥”组成。   古人将天干中一个字与地支中的一个字相互搭配,天干在上,代表阳,地支在下,代表阴。天干由“甲”起,地支由“子”起。方法是甲子为第一年,乙丑为第二年,丙寅为第三年……壬戌为五十九年,至癸亥为止,一周为整六十年,叫作“六十甲子”。然后又从甲子开始,循环往复。     如果您不知道公历某一年是农历的什么年,其实,只要已知公元年数,是可以通过数学方法算出年的干支。您只要将公元年数减去3后,再除以60,所得的正余数就是该年的干支序号。如余数为1,则该年的干支序号为1,从六十干支表上即可知该年为甲子年;以此类推,如余数为2,则该年为乙丑年;如余数为59,则该年为壬戌年。如余数为0,则该年为癸亥年。       以2021年举例,2021减3再除以60,可算得商为33,余数为38,而此余数就是2021年的干支序号,从六十干支表上即可查得该年为辛丑年。     由于“干支纪年”推算复杂,容易弄混。为了便于记忆和推算年份,人们就用十二种动物与“十二地支”互相搭配,每年用一种动物作为一年的属相,也就是大家耳熟能详的“子鼠、丑牛、寅虎、卯兔、辰龙、巳蛇、午马、未羊、申猴、酉鸡、戌狗、亥猪”。这样,事情就简化了,人们不再称呼什么“庚子年”“辛丑年”,干脆就叫“鼠年”“牛年”。天文年历显示,2021农历辛丑牛年从2021年2月12日开始,至2022年1月31日结束,全年共有354天。

    2021年12月21日
    86
  • 二手市场的商业模式分析

    随着电商生态的成熟,二手交易市场也发展得愈发火热,其中更是出现了不少玩家。那么在这个市场中,二手交易平台有哪些?这些玩家又是如何在市场中搭建自己的商业盈利模式的?本文作者就此作了分析,一起来看一下。 二手交易想必大家都不陌生,像早期的跳骚市场、旧物市集都是二手交易的核心渠道。但受制于地理位置和信息不同步,包括移动互联网崛起,电商业的成熟,使得供给侧和需求侧的矛盾愈发激烈,这为二手电商的发展奠定了好的开端。 据MobData研究院的数据显示,2018年我国二手闲置年交易额为7420亿,2019年为9646亿,2020年则上升到了12540亿。 不断攀升的交易额的背后,一方面源于人们消费意识和“喜新厌旧”观念的影响,另一方面也随着人们生活水平提高,二手库存、“断舍离”等观念因素的影响,使得整个行业正如火如荼地铺卷开来。 如此具有潜力的赛道,对于品牌的商业价值自然不可估量,那这个行业里的巨头都有哪些?具体的玩法如何设计?如何快速且全面地深入并掘金变现呢?我们接下来一一拆解。 一、以爱回收、闲鱼、转转三巨头鼎立的市场格局 浪潮来临,入局的玩家竞争自然就格外激烈,模式也尽不相同。 目前互联网巨头平台的交易模式大概可以分为3种:C2C,C2B2C,C2B。C2C应该很好理解,就是平台作为中介,让买卖双方进行信息、商品的交换,这里面重要的就是用户量、信用体系以及交易手段的运营。 C2B模式是属于平台端直接下场,充当回收商。而C2B2C就是平台先回收,再寄卖的模式,纯属于中间商赚差价型。 这三种模式分别对应当下二手行业的三巨头,其中闲鱼是综合性二手交易平台,依托于淘宝天猫等强大的电商体系,同时引入支付宝的信任体系,并通过站内社区和社群模式的运营,让其市场地位在三巨头中遥遥领先。 转转则是以手机垂直品类杀入市场,但因其不清晰的发展战略,品牌自身定位曾多次变更,当下还是以良品寄卖+优品自营的模式进行变现。 当然也背靠58同城,根据58同城早期的业务模式进行聚焦式的分离。自营的好处就是可以固定标准,公开透明,合理地解决了C2C之间报价与砍价的灰色区间。 爱回收是纯粹的C2B模式,背靠京东,先从用户侧进行二手手机的回收,再以To B的模式分散到不同的下游产业。 这种模式的好处就是可以很好地解决信任问题,而且爱回收目前已超1K+线下门店,聚焦3C数码类产品,是唯一一个进行布局线下的二手交易平…

    2021年11月21日
    335
  • 手机如何延长使用寿命?

    随着科技的进步,大家都用上了智能手机,但是很少用户知道手机应该如何保养,怎样才能延长手机的使用寿命,以下几点一定要做到,轻松延长手机寿命1-2年1.手机一定不能进水手机一定不能进水,手机虽然体型很微小,但里面的部件是十分紧密的,进水后,会影响内部零件的信息连接,会影响手机的部分功能使用,还会严重影响手机的使用寿命,如果进水了,应该立即关机,如果是严重进水,一定要及时送往维修中心,进水后自动关机了,也不要尝试开机,这会导致主板短路,因为我们都不是专业人员,我建议关机后应立即送往维修中心. 2.手机发热需谨慎手机使用时发热严重,一定要注意,手机发热,是因为手机运行大型应用,CPU芯片超负荷运行导致,应该停止使用,如果长时间发热,对手机的CPU的寿命是有很大的影响的,也有粉丝说,为什么冬天就不发热呢,因为发热是因为手机散热的问题,冬天外部温度低,手机散热快,所以不会出现发热,但是夏天外界温度高就会影响手机散热,导致手机发热严重,如果手机长时间发热,将手机开启飞行模式,静止1-2小时,如果不发热,掉电不严重,就是正常的,如果掉电和发热还是很严重,就要考虑手机是否漏电,需要去专业维修店去看一看.低电量时及时充电 3.没电状态要及时充电手机在电量很低的时候一定要及时充电,手机在低电量时,运行应用手机部件是很费劲的,要避免没必要的损耗,并且低电量时,是存在辐射的,会影响我们的健康.使用时长无法控制 4.控制使用时长手机因该控制使用时长,手机每次使用,都会对零部件有所损耗,所以长时间使用的手机,和短时间使用的手机,使用寿命,是有很大的区别的. 5应具备外壳保护手机因该配备钢化膜和外壳,这样手机的外壳也是能保持焕然一新,也会防止摔坏内部零件,很多用户都是因为手机外壳很丑了,就要换新手机.定期清理垃圾 定期给手机清理垃圾,尽量不要下载不安全的广告应用,这样会对后台运行影响很严重,每天清理一下,会对手机后台压力减轻很多.手机的使用寿命,和自己的习惯有很大影响,喜欢的东西一定要用心去对待,如果有使用问题可以评论区留言喔

    2021年7月4日
    41
  • 企业口号(企业口号标语大全集)

    当代文化的作用日益渗透到社会各个方面。特别是在竞争激烈的商界,企业内部所普遍认可和共同分享的企业理念口号文化(Brand_wei),常常对一家企业的兴衰成败起着至关重要的作用。企业是国家市场经济的主体,又是社会责任的承载者,企业车间厂房文化墙设计制作决定了企业的基本特性,影响着企业的性质、目标、经营方式的取向。 在日复一日的学习、工作或生活中,大家对口号都再熟悉不过了吧,口号既有公文语体准确、简洁的特点,又有政论语体严谨性、鼓动性的特点。那么什么样的口号才更具感染力呢?以下是小编帮大家整理的企业口号大全,仅供参考,希望能够帮助到大家。   企业口号1 1、商场如战场,品质打先锋。 2、只有勇于承担责任,才能承担更大的责任。 3、今天工作不努力,明天努力找工作。 4、用心血融铸经营理念,让企业文化生生不息。 5、“艰苦坚实,诚信承诺,实干实效”。 6、铸造辉煌,唯有质量。 7、优质产品,是市场竞争必胜的保证。 8、杜绝不良思想,发扬优质精神。 9、产品质量无缺陷,顾客服务无抱怨。 10、多点沟通,少点抱怨;多点理解,少点争执。 11、品质—企业致胜的关键。 12、21世纪——质量领先者的世纪。 13、优质产品,是打开市场大门的金钥匙。 14、多创优质产品,提高企业形象。 15、让环宇风帆载着优质的产品,跨越21世纪。 16、质量是企业的生命,为了保护您的生命,请为您的企业建立质量保证体系。 17、严谨思考,严密操作;严格检查,严肃验证。 18、创优质品牌,铸一流企业形象。 19、重视品质要付出代价,忽视品质代价更高。 20、用户是企业发展的源泉。 21、把生命注入到产品中去,产品就会在市场上活起来。 22、质量—带给你看得见的未来,说不出的精彩。 23、优质产品,是走向世界的桥梁。 24、保证质量,是对社会的承诺。 25、为自己养成一个好习惯,给别人留下一个好印象。 26、只有步入国际标准的轨道,才有无限延伸的空间。 27、贯标出质量,认证树形象。 28、改善既改革,改革先革心。 29、转变观念,转变作风,让企业文化生生不息。 30、争做一流员工,共创一流产品同创一流企业。 31、以质量求生存,以质量求发展,向质量要效益。 32、市场如水,企业如舟,质量象舵,人是舵手。 33、塑造人的品质,建立管理根基。 34、以实干的精神创造高效的企业业绩。 35、质量—恒古不变的…

    2022年6月3日
    14