相关疑难解决方法(0)

很好地代表python中的浮点数

我想将一个浮点数表示为一个四舍五入到一些有效数字的字符串,并且从不使用指数格式.基本上,我想显示任何浮点数,并确保它"看起来不错".

这个问题有几个部分:

  • 我需要能够指定有效位数.
  • 有效位数需要变量,使用字符串格式化运算符无法完成.[编辑]我被纠正了; 字符串格式化操作符可以执行此操作
  • 我需要它像一个人期望的那样四舍五入,而不是像1.999999999999那样

我已经想出了这样做的一种方法,虽然它看起来像是一种工作,但它并不完美.(最大精度为15位有效数字.)

>>> def f(number, sigfig):
    return ("%.15f" % (round(number, int(-1 * floor(log10(number)) + (sigfig - 1))))).rstrip("0").rstrip(".")

>>> print f(0.1, 1)
0.1
>>> print f(0.0000000000368568, 2)
0.000000000037
>>> print f(756867, 3)
757000
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?为什么Python没有内置函数呢?

python floating-point significant-digits representation

12
推荐指数
2
解决办法
2万
查看次数