gpt4 book ai didi

python - 如何舍入python中的两位有效数字?

转载 作者:行者123 更新时间:2023-12-05 04:22:49 35 4
gpt4 key购买 nike

我看过周围的解决方案,但它们大多四舍五入到两位有效数字而不是向下取整

这几种方法我都试过了

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)

关于python - 如何舍入python中的两位有效数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73874229/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com