固定宽度数字格式

时间:2014-06-23 07:40:45

标签: python formatting

格式化值时,不考虑减号:

>>> format_len5 = lambda val : '{:5.3f}'.format(val)
>>> len(format_len5(1.2345678))
5
>>> len(format_len5(-1.2345678))
6

到目前为止,我的最佳解决方案是检查val的符号并相应地调整长度:

>>> format_len5 = lambda val : ('{4.3f}' if val<0 else '{5.3f}').format(val)

但这似乎不对。是否有另一种方法来实现不涉及三元运算符的固定长度字符串?

1 个答案:

答案 0 :(得分:0)

另一种不使用格式化的方法是使用切片

format_len5 = lambda val : str(val)[:5]

print format_len5(1.234567)    #1.234
print format_len5(-1.234567)   #-1.23

注意:这会截断结果,而不是格式化它。