python控制浮点数的小数点后两位输出,python输入浮点数
在python的输出结果中,尤其是浮点数的输出,当我们需要在文本文件中书写时,最好采用统一的输出格式,这样也可以增强结果的可读性。本文主要介绍Python浮点数输出位数的控制方法,有需要的朋友可以参考一下。
00-1010技术背景采用有效数字的常规控制方法概述
在python的输出结果中,尤其是浮点数的输出,当我们需要编写文本文件时,最好采用统一的输出格式,这样也可以增强结果的可读性。对于浮点数输出位数的控制,可以通过{:4f}和%.4f指定打印或输出时字符串占用的空间,也可以通过round函数在输出前对结果进行转换。但是如果要取有效数,就需要使用{:4}。这些方法没有优劣,只是看不同的场景,选择不同的精度控制方案。
目录
在Python的一些长期任务中,不可避免地要将一些数据写入文本文件、二进制文件或数据库,或者在屏幕上输出一些文本。这个时候,如何控制输出数据的长度,是一个需要我们注意的问题。举个例子,对于一个二进制文件,如果输出浮点数的长度一直在变化,那么在写入文件后,阅读器会根据位读出一堆错误的数据。因此,我们需要控制输出位数,尤其是浮点数。
技术背景
一般情况下,我们可以通过舍入来设置输出浮点数的有效位数。原理是直接取给定浮点数的前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} )。格式(pi_10))
31.4159
在上面的例子中,小数点前后有多个数字。另外,类似的,看看小数点前只有0的数字的输出结果:
[5]:中pi_10=0.31415926
In [6]: print (round(pi_10,4))
0.3142
In [7]:打印( {:4f} )。格式(pi_10))
0.3142
in[8]: print(% . 4f % pi _ 10)
0.3142
在上面两种情况下,我们发现三者的输出结果都是一样的。但是,如前所述,输出前取有效数字和输出后取有效数字之间的差异可以反映在以下情况中:
在[9]: pi_10=3.1415926E-08中
In [10]: print (round(pi_10,4))
0.0
In [11]:打印( {:4f} )。格式(pi_10))
0.0000
In [12]: print (%.4f % pi_10)
0.0000
这里输入的是一个浮点数,小数点后有很多零,但这里用的是科学的计数方法,即:\ (3.1415926 * 10 {-8} \)。这时候我们用这三种输出方式,得到的结果都是零,第一种方案是小数点不直接满四位数。这是因为用round取有效位时小数点后位数太多,直接把当前浮点数当作0.0而不是0.0000。但后两种方案的过程更像是把这个数打印出来后去掉超过有效位数的数字,所以小数点后会保留四个零。然而,即便如此,结果也不是我们想要的。虽然这个数字很小,但可能只是因为单位问题,并不代表这个数字的影响力为0。所以这种直接取小数点后有效数字的方法可能会有问题。
常规控制方法
这里要介绍的取有效数字的方法,不再是去掉小数点后的有效数字,而是整体的有效数字。方法也很简单,就是把上一章的{:4f}改成{:4}。同样,我们可以通过这些案例来理解控制有效数字的结果:
[13]: pi_10=3.1415926E-08
在[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.cnblogs.com/dechinphy/p/fprint.html
作者ID:DechinPhy
更多原著文章请参考:https://www.cnblogs.com/dechinphy/
打赏专用链接:https://www.cnblogs.com/dechinphy/gallery/image/379634.html
腾讯云专栏同步:https://cloud.tencent.com/developer/column/91958
到此这篇关于控制Python浮点数输出位数的文章就介绍到这了,更多相关Python浮点数输出位数内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。