python中round()函数问题。

python中round(3.15,1),结果为什么会是3.1,而不是3.2?

根据下面参考链接的解释:
如果要求保留位数的后一位“=5”,且该位数后面没有数字,则不进位,如round(5.215,2),结果为5.21(引用自参考链接 ),同理round(3.15,1) 第二个参数指定保留一位小数,然后保留位数的后一位为5,且这个5的后面又没有数字,所以不进位,结果就为3.1

参考链接:


print(round(3.15,1))


img

奇进偶舍
https://blog.csdn.net/doudou_nc/article/details/98507849

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7412827
  • 这篇博客也不错, 你可以看下python中round()函数精度问题
  • 除此之外, 这篇博客: python不经常使用的函数中的 round() 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #7、 round() 方法返回浮点数x的四舍五入值。
    #round( x [, n] )x – 数值表达式。 n – 数值表达式,表示从小数点位数。
    print(round(80.23456, 2)) #80.23
    print(round(80.23456, 3)) #80.235

round()函数,在舍入位为5时:如果后面还有有效数字,就“入”(进位);比如 round(3.25,1)=3.2 , round(3.25001,1)=3.3
如果没有,就“留双”(要保留的那位是奇数,就进位;要保留的那位是偶数,就去尾)。