python - 通俗地说,Python 字符串格式 "g"实际上是什么意思?

标签 python floating-point number-formatting exponent

我觉得问我确定是一个相当基本的问题有点傻,但我一直在学习 Python,我很难理解“g”和“G”字符串格式的实际作用。

文档是这样说的:

Floating point format. Uses lowercase exponential format if exponent is less than -4 or not less than precision, decimal format otherwise.

我确信这应该是有道理的,但我就是不明白。有人可以为这种格式提供更清晰的解释,并可能提供一些示例说明何时以及如何使用它,而不是仅使用“e”或“f”。

谢谢

最佳答案

这些例子可能是说明性的:

>>> numbers = [100, 10, 1, 0.1, 0.01, 0.001, 0.0001, 0.00001]
>>> for number in numbers:
...     print "%%e=%e, %%f=%f, %%g=%g" % (number, number, number)
... 
%e=1.000000e+02, %f=100.000000, %g=100
%e=1.000000e+01, %f=10.000000, %g=10
%e=1.000000e+00, %f=1.000000, %g=1
%e=1.000000e-01, %f=0.100000, %g=0.1
%e=1.000000e-02, %f=0.010000, %g=0.01
%e=1.000000e-03, %f=0.001000, %g=0.001
%e=1.000000e-04, %f=0.000100, %g=0.0001
%e=1.000000e-05, %f=0.000010, %g=1e-05
>>> for number in numbers:
...     print "%%0.2e=%0.2e, %%0.2f=%0.2f, %%0.2g=%0.2g" % (number, number, number)
... 
%0.2e=1.00e+02, %0.2f=100.00, %0.2g=1e+02
%0.2e=1.00e+01, %0.2f=10.00, %0.2g=10
%0.2e=1.00e+00, %0.2f=1.00, %0.2g=1
%0.2e=1.00e-01, %0.2f=0.10, %0.2g=0.1
%0.2e=1.00e-02, %0.2f=0.01, %0.2g=0.01
%0.2e=1.00e-03, %0.2f=0.00, %0.2g=0.001
%0.2e=1.00e-04, %0.2f=0.00, %0.2g=0.0001
%0.2e=1.00e-05, %0.2f=0.00, %0.2g=1e-05

Python 的一个优点是,当您不完全理解它的含义时,可以很容易地在解释器中测试它。

关于python - 通俗地说,Python 字符串格式 "g"实际上是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8282130/

相关文章:

java - 使用抽象java.text.NumberFormat类的getInstance()方法时,返回值的实际类是什么?

python - 格式化 numpy 浮点值

python - 使函数返回 bool 值并在 tic/tac/toe 游戏中实现 AI

python - 匹配包含月份的日期范围的正则表达式

计算浮点精度(K&R 2-1)

r - 如何添加前导零?

python - 在 PyML 中获取多类问题的召回率(灵敏度)和精度(PPV)值

android - 在 Raspberry Pi 上编程 Python

java - 按句点将 String 拆分为 String[] 但返回空数组

c - 在嵌入式 C 中将 float 与 sprintf() 一起使用