Python Round_down

问题描述 投票:1回答:1

我有下面的代码和结果,我需要将每个数字四舍五入到小数点后第一位,但要取最低的一位,例如: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
python rounding
1个回答
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

0
投票

这里是解决方案。试试这个。

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]) )


0
投票

这也可以。

num = 7.166666666667
print(int(num*10)/10)

这样做的目的是将数字 (i.e. 7.1666...) 再乘以10(71.666...) 这样当从它那里取一个整数时,它就会返回一个整数(71),然后再除以一个小数位(7.1)。希望能帮到你。

© www.soinside.com 2019 - 2024. All rights reserved.