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

标签 python floating-point decimal

给定这个简单的 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

关于python - 在 Python 中仅打印有效数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25426958/

相关文章:

python - Python 中的 ElasticNetCV 与 R 中的 cvglmnet

c++ - 在 C++ 中实现长方程时,如何通过高级方法提高性能

python - Python生成两个文件的 "fuzzy"差异,带float的近似比较

go - 使用整数作为小数系数而不是 float 对于货币应用来说是个好主意吗?

php - number_format() php 删除尾随零

mysql - MySQL 5.7 中截断了不正确的 DECIMAL 值

python - 使用迭代器打印整数

python - 如何在 Django 中分别获取当前日期和当前时间?

Android numberDecimal,考虑 xml 布局中的语言环境

python - 如何制作一个可以注销、关机和重启计算机的python脚本?