我有下面的代码和结果,我需要将每个数字四舍五入到小数点后第一位,但要取最低的一位,例如:7.166666666666667是7.1而不是7.2。
我试过用round_down,但还是四舍五入。
for x in range(0, 9):
income_visits=(income_euro[x]/visits[x])
print(income_visits)
7.166666666666667
7.0
7.666666666666667
11.0
0.1111111111111111
11.333333333333334
162.0
55.0
9.0
这里有一个小函数可以帮你实现。
def round_down(n, decimals=0):
multiplier = 10 ** decimals
return math.floor(n * multiplier) / multiplier
请确保导入了 math
库。
使用实例。
print(round_down(1.7777, 1))
print(round_down(1.7777, 2))
print(round_down(1.7777, 3))
输出。
1.7
1.77
1.777
这里是解决方案。试试这个。
number
= YOUR_NUMBER
float(str(int(number)) + '.' + str(number-int(number))[2:3])
>>> number = 7.166666666666667
>>> print( float(str(int(number)) + '.' + str(number-int(number))[2:3]) )
7.1
>>>
>>> number = 7.116666666666667
>>> print( float(str(int(number)) + '.' + str(number-int(number))[2:3]) )
7.1
>>>
>>> number = 7.196666666666667
>>> print( float(str(int(number)) + '.' + str(number-int(number))[2:3]) )
7.1
>>>
>>> number = 7.096666666666667
>>> print( float(str(int(number)) + '.' + str(number-int(number))[2:3]) )
这也可以。
num = 7.166666666667
print(int(num*10)/10)
这样做的目的是将数字 (i.e. 7.1666...)
再乘以10(71.666...)
这样当从它那里取一个整数时,它就会返回一个整数(71),然后再除以一个小数位(7.1)。希望能帮到你。