Skip to main content
 首页 » 编程设计

python之在 Python 中仅打印有效数字

2025年05月04日15thcjp

给定这个简单的 python 脚本:

import sys, math 
 
for i in range(1, len(sys.argv)): 
    num = float(sys.argv[i]) 
    print('sin(%f) = %f' % (num, math.sin(num))) 

使用这些参数运行:

python hw2a.py 1.4 -0.1 4 99

我想要这个输出:

sin(1.4)=0.98545 
sin(-0.1)=-0.0998334 
sin(4)=-0.756802 
sin(99)=-0.999207 

但是,当我运行它时,我在小数点和有效数字后面得到了很多无关紧要的数字(好吧,零)。我知道我可以使用例如 %.3f 指定固定的小数位数,但是我怎样才能让它打印小数点后的所有数字,直到没有有效数字为止?

提前致谢!

请您参考如下方法:

你可以用%g格式化:

In [16]: a = [1.4, -0.1, 4, 99] 
 
In [18]: for num in a: 
    ...:     print('sin(%g) = %g' % (num, math.sin(num))) 
    ...:      
sin(-0.1) = -0.0998334 
sin(4) = -0.756802 
sin(99) = -0.999207