Python格式的浮点数,例如Fortran

时间:2019-04-09 05:31:46

标签: python string-formatting

我正在用Python打印一些浮点数,并希望它们的输出像Fortran const shadowOpt = { width:100, height:100, color:"#000", border:2, radius:3, opacity:0.2, x:0, y:3, style:{marginVertical:5} } <Shadow setting={shadowOpt}> ... your view here </Shadow> 格式,例如:

Fn.m

我已经知道PyPI中有一个名为# :some maybe format language like `F6.4` in Fortran >>> '{:some}'.format(-0.0005) -.0005 >>> '{:some}'.format(0.0005) 0.0005 的模块可以处理它,我想知道Python字符串格式语言是否可以解决我的问题?

2 个答案:

答案 0 :(得分:0)

Python的格式迷你语言具有widthprecision的概念,但是仅当应用格式的参数已经是浮点数时才适用。

这可以通过编程方式完成:

n = 6437
d = 2
res = "{}".format(n if d == 0 else n / (10 ** d))

将会产生:64.37

答案 1 :(得分:0)

我对UI友好紧凑的浮点格式的解决方案是这样的

def format_float(f):
    if f - float(int(f)) == 0.0:
        return str(int(f))
    s = ("%20.15f" % (f,).lstrip(" ").rstrip("0")
    return s

没有十进制数字的浮点数看起来像整数,并且删除了前导空格,并且删除了尾随零。 这样可以使结果字符串的宽度最小,以使想法完整。 在UI代码中有用。