有谁知道如何将数字舍入到最接近的.0125?例如,数字为167.1131,则需要将其转换为167.1125。我试图用round
来做,但是它会转到0.x。
答案 0 :(得分:5)
将其转换为“0.0125's”,然后转换回来:
round(x/0.0125)*0.0125
答案 1 :(得分:1)
round()
函数的重点是舍入到十分之一,百分之一,千分之一等 - 基本上是舍入到10的负指数。
所以,由于0.0125不是round()
可以处理的数字,你可以
round
之前对其输入数字应用乘法运算,以便它可以对其设计进行舍入,然后校正初始乘法。其中一个答案是这样的。第二种方法的代码:
def round_0125(number):
mult_number = number * 10000
remainder = mult_number % 125
return (mult_number - remainder) / 10000
round_0125(167.1131)
#167.1125
round_0125(167.5738)
#167.5625
答案 2 :(得分:0)
value = 167.1125
dec_value = value % 1 # get decimal part
whole_value = value // 1
my_range = np.arange(0, 1, 0.0125)
distance = np.abs(dec_value - my_range) # get the absolute distance
index = np.argmin(distance) # find the index of smallest distance
result = whole_value + my_range[index]