我希望將數字四舍五入到最接近零的 1,000。以下代碼適用于正數
import math
original_number = 1245
new_number = math.floor(original_number / 1000.00) * 1000
>> 1000
但是,當我在負數上使用代碼時,它會移動得更遠。
import math
original_number = -1245
new_number = math.floor(original_number / 1000.00) * 1000
>> -2000
uj5u.com熱心網友回復:
您可以只使用要四舍五入的數字的絕對值,然后使用 , 保留數字的符號math.copysign(),
import math
original_number = -1800
new_number = math.copysign(abs(original_number) // 1000 * 1000, original_number)
uj5u.com熱心網友回復:
這適用于正數和負數。
import math
original_number = -1100
if original_number<0:
new_number = -math.floor(abs(original_number) / 1000.00) * 1000
else:
new_number = math.floor(original_number / 1000.00) * 1000
print(new_number)
輸出
IN:-1254, OUT:-1000
IN:-1500, OUT: -1000
IN:-1501, OUT: -1000
uj5u.com熱心網友回復:
round_thousands_towards_zero = lambda num: num - (num % (num/abs(num)*1000))
無拉姆達:
def round_thousands_towards_zero(num):
sign = num/abs(num)
saught_multiplier = sign * 1000
return num - (num % saught_multiplier)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/474841.html
