我 阅读:
g
和G
转换类型根据指数的大小和为.<precision>
指定的值选择浮点或指数输出。如果指数小于-4或不小于.<precision>
,则输出与e
/E
相同。否则,输出与f
/F
相同:
同时,“如果指数小于-4或不小于.<precision>
”这句话我没有理解。在哪里明确指定了指数?通过“指数”,是指小数点后的位数吗?我认为是这样的,因为当我尝试在小数点后保留四个数字时,它将其打印为f
,但当我尝试在小数点后保留五个数字时,它将其打印为e
:
>>> '%g' % 0.0003
'0.0003'
>>> '%g' % 0.00003
'3e-05'
问题1. 我对上面的理解正确吗?
问题2. 但是,我不明白为什么在下面的例子中它没有做同样的事情:
>>> '%g' % 3.14
'3.14'
>>> '%g' % 3.014
'3.014'
>>> '%g' % 3.0014
'3.0014'
>>> '%g' % 3.00014
'3.00014'
>>> '%g' % 3.000014
'3.00001'
>>> '%g' % 3.0000014
'3'
问题3. 最后,我没有理解 "如果指数小于-4或不少于.<precision>
" 部分的含义。我尝试明确指定小于和大于小数点后4位的精度。但它仍然打印出相同的结果:
>>> '%g' % 0.00003
'3e-05'
>>> '%.3g' % 0.00003
'3e-05'
>>> '%.9g' % 0.00003
'3e-05'