python练习-四舍五入

python2.7下如何实现四舍五入(而不是向下取整)

想了半天没想出来,后来百度了一下。

基本就是原来的数字上+0.5,还是利用原来的向下取整的机制

如果原来是<0.5的,那加上0.5还是没进位,所以还是会被向下取整掉

如果原来是>0.5的,加上0.5就进位了,所以就是进位后的向下取整

>>> a=13.2  
>>> roundoff=int(a+0.5)    
>>> roundoff

13

>>> b=13.7  
>>> roundoff=int(b+0.5)    
>>> roundoff    
14

时间: 2024-10-11 02:44:51

python练习-四舍五入的相关文章

Python3里面的浮点计算问题

最近在做一个问题的时候遇到Python计算浮点数出错的问题,有兴趣的可以参考这篇文章 http://blog.csdn.net/zhangzhengyi03539/article/details/45937063 先来看一下这个代码 start=500000000001 end=1000000000000 i=1 total_i=(start+end)*(end-start+1)/2*i print(total_i) 这些代码在Python2.7中运行是不会报错的可以计算出正确结果 375000

Python 之 向上取整、向下取整以及四舍五入

python 向上取整ceil 向下取整floor 四舍五入round,相面给出源码示例. import math #向上取整 print "math.ceil---" print "math.ceil(2.3) => ", math.ceil(2.3) print "math.ceil(2.6) => ", math.ceil(2.6) #向下取整 print "\nmath.floor---" print &q

为什么你需要少看垃圾博客以及如何在Python里精确地四舍五入

今天又有一个Python初学者被中文技术博客中的垃圾文章给误导了. 这位初学者的问题是: 在Python中,如何精确地进行浮点数的四舍五入,保留两位小数? 如果你在Google或者百度上搜索,你会发现大量的来自CSDN或者简书上面的文章讲到这一点,但是他们的说法无外乎下面几种: 连例子都不举的垃圾文章 如下图所示,懒得吐槽. 使用round函数 他们举的例子为: >>> round(1.234, 2) 1.23 这种文章,他只演示了四舍,但是却没有演示五入.所以如果你代码稍作修改,就会发

Python 中浮点数四舍五入的问题

一. 问题 昨天遇到一个问题,在 6.6045 保留三位小数时,使用 round() 函数进行计算,我们希望得到 6.605,然而: >>> round(6.6045, 3) 6.604 网上有人说,因为在计算机里面,小数是不精确的,例如 1.115 在计算机中实际上是 1.114999999999999991182,所以当你对这个小数精确到小数点后两位的时候,实际上小数点后第三位是 4,所以四舍五入,结果为 1.11. 这种说法,对了一半. 因为并不是所有的小数在计算机中都是不精确的.

python 向上取整ceil 向下取整floor 四舍五入round

#encoding:utf-8import math #向上取整print "math.ceil---"print "math.ceil(2.3) => ", math.ceil(2.3)print "math.ceil(2.6) => ", math.ceil(2.6) #向下取整print "\nmath.floor---"print "math.floor(2.3) => ", ma

python 数字的四舍五入的问题

由于 python3 包括python2.7 以后的round策略使用的是decimal.ROUND_HALF_EVEN 即Round to nearest with ties going to nearest even integer. 也就是只有在整数部分是奇数的时候, 小数部分才逢5进1: 偶数时逢5舍去. 这有利于更好地保证数据的精确性, 并在实验数据处理中广为使用. >>> round(2.55, 1) # 2是偶数,逢5舍去 2.5 >>> format(2

四舍五入就用round( )?Python四舍五入的正确打开方式!

菜鸟教程中介绍到,round() 函数作用就是,返回浮点数x的四舍五入值. > round( x [, n] )1参数x,n均为数值表达式,返回值为x的四舍五入值.n为保留的小数位数,不加n则只保留x四舍五入后的整数部分. >>> round(2.3)2>>> round(2.45, 1)2.51234特殊情况上面的结果并没有错误,这里再用2.675测试一下: >>> round(2.675, 2)2.6712显然结果不符合四舍五入的规则.为什么

Python中小数四舍五入的处理

由于使用round模块导致小数四舍五入精度不准确,于是自己写了一个四舍五入的方法,方便今后工作中参考! """"""""""""""""""""""""""""# -*- coding: utf-8 -*-# @Time : 20

Python的round()函数与数学的四舍五入的区别

print(round(0.5))>>0 print(round(1.5))>>2 print(round(2.5))>>2 整数部分为偶 小数为0.5 向下取整 0也是偶数整数部分为奇 小数为0.5 向上取整 print(round(5.123,2)) 保留两位小数>>5.12 math.ceil 向上取整math.floor 向下取整 原文地址:https://www.cnblogs.com/Gdavid/p/11744023.html