【问题标题】:How to print a decimal number up to n decimal values neglecting 0's if any at the end?如何打印最多 n 个十进制值的十进制数,如果最后忽略 0?
【发布时间】:2019-07-07 04:54:25
【问题描述】:

我正在尝试打印两个数字的值,最多 4 位小数,不包括最后的 0。

a= 0.125
b= 0.256325

print("%.4f" %round(a,4))
print("%.4f" %round(b,4))

这给了我 0.1250 和 0.2563,但我只想要 a 的 0.125 和 b 的 0.2563

我希望:

如果 a 是 0.125、0.1250 或 0.125000,我应该只得到 0.125 作为输出,对于所有其他情况,我可以在 "." 之后得到 4 个非零值

【问题讨论】:

  • str(round(a, 4)) 使用 Python 3.7.3 的结果为 '0.125'(str(round(b, 4)) 的结果为 '0.2563')。
  • C语言能不能得到想要的结果。

标签: python printing number-formatting


【解决方案1】:

尝试normalize 提到的here

import decimal 
print(decimal.Decimal('0.1230000').normalize())
0.123

你的例子

a= 0.125
b= 0.256325

print (decimal.Decimal(str.format('%.4f' %a)).normalize())
print (decimal.Decimal(str.format('%.4f' %b)).normalize())

0.125
0.2563

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 2013-03-31
    • 1970-01-01
    相关资源
    最近更新 更多