2017-07-18 42 views
0

我要舍這樣42949672 - > 42949700,2147483647 - > 2147480000,4252017622 - > 4252020000等回合顯著數字在python

我嘗試使用以下,但只適用於第一個。我怎樣才能做出更一般的?謝謝

round(42949672, -2) 
+0

'輪(2147483647,-4)'根據需要給'2147480000'。你需要告訴它有多少個數字來回合。 –

+0

是的,但一輪(42949672,-4)不給42949700.我想我需要自己的數位數學 – golu

回答

1

我假設你要舍入到6顯著人物。如果你想圓int S,你可以使用

def round_sf(number, significant): 
    return round(number, significant - len(str(number))) 

print(round_sf(4252017622, 6)) 

結果:

4252020000 
+0

是的,這是有效的。謝謝! – golu

0

要四捨五入到您所定位的任何數字,您可以簡單地將數字作爲負數,然後將其轉換爲整數。

digits = 4 
num = 2147483647 
rounded_num = int(round(num, -digits)) 

如果你想保持6個顯著數字始終,這就是我在你的問題看到了模式,你會想這樣做:

def sf_round(num, sig_fig): 
    return int(round(num, -(len(str(num))-sig_fig)))