python控制输出小数位数,python怎么限制输出精度

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: