python控制输出小数位数,python怎么限制输出精度
本文主要介绍python输出十进制控制方法的详细说明。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010 I .要求精度低1.round()内置方法2 .使用格式2。需要17位以上的精度分析1。使用格式(不推荐)2。使用高精度的十进制模块,使用getcontext 3。关于小数和舍入1。Round () 2。数学模块3的CEIL (x)。数学模块的Flo
目录
将高精度浮点数转换为低精度浮点数。
一、要求较小的精度
Round()不是简单的舍入方法。
圆形(2.5)
2
圆形(1.5)
2
圆形(2.675)
三
圆形(2.675,2)
2.67
Round()如果只有一个数字作为参数,并且没有指定位数,则返回一个整数,并且是最接近的整数(这类似于舍入)。但出现. 5时,两边距离相同,round()取接近的偶数2。
当指定要选择的小数位数时,通常使用舍入规则。但在. 5的情况下,如果待选位数前的小树是奇数,则直接丢弃;如果是偶数,则向上选择。
请看下面的例子:
圆形(2.635,2)
2.63
圆形(2.645,2)
2.65
圆形(2.655,2)
2.65
圆形(2.665,2)
2.67
圆形(2.675,2)
2.67
1.round()内置方法
效果和round()一样。
a=(%.2f % 2.635)
a
2.63
a=(%.2f % 2.645)
a
2.65
a=int(2.5)
a
2
2. 使用格式化
Python默认的精度是小数点后17位,但是这里有个问题,当我们的计算需要使用更高的精度(小数点后17位以上)时该怎么办?
二、要求超过17位的精度分析
a=%.30f % (1/3)
a
0.333333333333333314829616256247
可以显示出来,但是不准确,后面的数字往往没有意义。
1. 使用格式化(不推荐)
从十进制导入*
print(getcontext())
上下文(prec=28,rounding=ROUND_HALF_EVEN,Emin=-999999,Emax=999999,
capitals=1,clamp=0,flags=[],traps=[InvalidOperation,DivisionByZero,
溢出])
getcontext()。prec=50
b=十进制(1)/十进制(3)
b
十进制( 0.3333333333333333333333333333333333333333333333333333333 )
c=十进制(1)/十进制(17)
c
十进制( 0.058823529411764705882352941176470588235294117647058235294117647059 )
浮动(c)
0.058823529411764705
默认上下文的精度是28位,可以设置为50位甚至更高。这样,在分析复杂的浮点数时,您可以获得更高的精度。
其实可以关注一下上下文中的rounding=ROUND_HALF_EVEN参数。当它是一半时,它接近于偶数。
2. 高精度使用decimal模块,配合getcontext
说到小数,就要说整数了。通常,这些函数用于舍入:
三、关于小数和取整
我们不要谈这个了。我们之前已经讨论过了。一定要注意,不是简单的四舍五入,而是ROUND_HALF_EVEN的策略。
1. round()
取大于等于x的最小整数。
2. math模块的ceil(x)
小于或等于x的最大整数。
从数学导入天花板、地板
圆形(2.5)
2
上限(2.5)
三
地板(2.5)
2
圆形(2.3)
2
上限(2.3)
三
地板(2.3)
2
以上是python的十进制输出控制方法的详细内容。关于python的十进制输出的更多信息,请关注盛行的IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。