我想将一个浮点数表示为一个四舍五入到一些有效数字的字符串,并且从不使用指数格式.基本上,我想显示任何浮点数,并确保它"看起来不错".
这个问题有几个部分:
我已经想出了这样做的一种方法,虽然它看起来像是一种工作,但它并不完美.(最大精度为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没有内置函数呢?