不想写了,还是抄抄别人的代码吧

1.取余函数 divmod()

num = float(input())
a,b = divmod(num,1)
if b >= 0.5:
    print(format(a+1,'.0f'))
else:
    print(format(a,'.0f'))

Python

divmod() 函数接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b)。在 python 3.x 版本该函数不支持复数。

函数语法 divmod(a, b) 参数说明:

a: 数字,非复数。
b: 数字,非复数。
如果参数 a 与 参数 b 都是整数,函数返回的结果相当于 (a // b, a % b)。

如果其中一个参数为浮点数时,函数返回的结果相当于 (q, a % b),q 通常是 math.floor(a / b),但也有可能是 1 ,比小,不过 q * b + a % b 的值会非常接近 a。

如果 a % b 的求余结果不为 0 ,则余数的正负符号跟参数 b 是一样的,若 b 是正数,余数为正数,若 b 为负数,余数也为负数,并且 0 <= abs(a % b) < abs(b)。

>>> divmod(7, 2)
(3, 1)
>>> divmod(8, 2)
(4, 0)
>>> divmod(8, -2)
(-4, 0)
>>> divmod(3, 1.3)
(2.0, 0.3999999999999999)

2. 四舍五入函数round()

a = float(input()) 
print(int(round(a+0.00001,0)))

描述 round() 方法返回浮点数x的四舍五入值。

语法 以下是 round() 方法的语法:

round( x [, n] ) 参数

x -- 数值表达式。
n -- 数值表达式,表示从小数点位数。

返回值
返回浮点数x的四舍五入值。 实例
以下展示了使用 round() 方法的实例:

#!/usr/bin/python

print "round(80.23456, 2) : ", round(80.23456, 2)
print "round(100.000056, 3) : ", round(100.000056, 3)
print "round(-100.000056, 3) : ", round(-100.000056, 3)

以上实例运行后输出结果为:

round(80.23456, 2) :  80.23
round(100.000056, 3) :  100.0
round(-100.000056, 3) :  -100.0

感觉这个才是正统啊!

3. floor()函数

import math 

a = float(input())
print(math.floor(a + 0.5)) 

描述 floor() 返回数字的下舍整数。

语法 以下是 floor() 方法的语法:

import math

math.floor( x ) 注意:floor()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法。

参数 x -- 数值表达式。 返回值 返回数字的下舍整数。 实例 以下展示了使用 floor() 方法的实例:

#!/usr/bin/python
import math   # This will import math module

print "math.floor(-45.17) : ", math.floor(-45.17)
print "math.floor(100.12) : ", math.floor(100.12)
print "math.floor(100.72) : ", math.floor(100.72)
print "math.floor(119L) : ", math.floor(119L)
print "math.floor(math.pi) : ", math.floor(math.pi)

以上实例运行后输出结果为:

math.floor(-45.17) :  -46.0
math.floor(100.12) :  100.0
math.floor(100.72) :  100.0
math.floor(119L) :  119.0
math.floor(math.pi) :  3.0