[英]Python round to nearest .0125
有人知道如何將數字四舍五入到最接近的.0125嗎? 例如,有一個數字167.1131,則需要將其轉換為167.1125。 我嘗試用round
入法將其round
但round
到0.x。
將其轉換為“ 0.0125's”,四舍五入,然后轉換回:
round(x/0.0125)*0.0125
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
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]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.