[英]How to round down two significant figures in python?
我已經看到了周圍的解決方案,但它們大多四舍五入到兩位有效數字而不是向下
我試過這幾種方法
import math
v = 0.000129
math.floor(v*100)/100
-output-
0.0
或者
v = 0.000129
from decimal import Decimal
float(f"{Decimal(f'{v:.2g}'):f}")
-output-
0.00013
如您所見,我想要兩個有效數字,但不希望它們四舍五入。 Decimal 可以給出兩個 sig figs,但它四舍五入,而 math 只是簡單地給了我 0。
即一些測試
1999 -> 1900
29901 - > 29000
0.0199 -> 0.019
謝謝!
不使用任何字符串轉換的數學解決方案:
def round_down(n, sig_figs):
import math
return n - n % 10 ** math.ceil(math.log(abs(n), 10) - sig_figs)
>>> [round_down(n, 2) for n in [1990, 29901, 0.0199]]
[1900, 29000, 0.019]
注意事項:
0
-0.0199
→ -0.02
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.