当前位置: 首页 > 面试题库 >

如何在Python中将数字四舍五入为有效数字

欧阳鸿德
2023-03-14
问题内容

我需要四舍五入才能在UI中显示。例如,一个重要的数字:

1234-> 1000

0.12-> 0.1

0.012-> 0.01

0.062-> 0.06

6253-> 6000

1999-> 2000

是否有使用Python库执行此操作的好方法,还是必须自己编写?


问题答案:

您可以使用负数舍入整数:

>>> round(1234, -3)
1000.0

因此,如果您只需要最高有效数字:

>>> from math import log10, floor
>>> def round_to_1(x):
...   return round(x, -int(floor(log10(abs(x)))))
... 
>>> round_to_1(0.0232)
0.02
>>> round_to_1(1234243)
1000000.0
>>> round_to_1(13)
10.0
>>> round_to_1(4)
4.0
>>> round_to_1(19)
20.0

如果大于1,则可能需要将float转换为整数。



 类似资料:
  • 问题内容: 这个问题使我丧命。如何在Python中向上舍入一个数字? 我试过了舍入(数字),但它四舍五入数字。例: 我尝试了int(number + .5),但是它再次将数字取整!例: 然后我尝试了round(number + .5),但是在边缘情况下不起作用。例: 请指教。 问题答案: 该小区(上限)功能:

  • 问题内容: 如何在Java中四舍五入到特定的倍数?在excel中,该函数可以轻松舍入到指定的倍数,如下所示: 所以将返回,如果和如果。 到目前为止,我发现的所有舍入函数都始终舍入到最接近的整数或指定的小数位数,但是我希望能够为每个变量更改倍数。有谁知道哪种功能最适合这种情况? 问题答案: 只需除以数字,四舍五入,然后乘以数字即可。

  • 问题 你想对浮点数执行指定精度的舍入运算。 解决方案 对于简单的舍入运算,使用内置的 round(value, ndigits) 函数即可。比如: >>> round(1.23, 1) 1.2 >>> round(1.27, 1) 1.3 >>> round(-1.27, 1) -1.3 >>> round(1.25361,3) 1.254 >>> 当一个值刚好在两个边界的中间的时候, round

  • 问题内容: 我想将整数四舍五入到Java中最接近的1000。 因此,例如: 13,623发至13,000 18,999轮到18,000 等等 问题答案: 只需除以1000,就可以丢掉您不感兴趣的数字,然后乘以1000: 或者,您也可以尝试:

  • 问题内容: 如何将十进制数四舍五入为整数。 3.50 => 4 4.5 => 5 3.4 => 3 您如何用Java做到这一点?谢谢! 问题答案: 如果只使用正数,也可以使用int i =(int)(d + 0.5)。 编辑:如果您想将负数向上舍入(向正无穷大,例如-5.4变为-5),也可以使用它。如果要舍入到更高的值(将-5.4舍入为-6),建议您使用其他答案提出的其他功能。

  • 问题内容: 我们如何在php中将数字四舍五入到最接近的10? 说我有,我将使用什么代码将其四舍五入? 问题答案: 会下降。 会上升。 默认情况下会最接近。 除以10,得到ceil,然后乘以10以减少有效数字。 编辑:我已经这样做了很长时间..但是TallGreenTree的答案是更干净。