格式化值时,不考虑减号:
>>> 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)
但这似乎不对。是否有另一种方法来实现不涉及三元运算符的固定长度字符串?
答案 0 :(得分:0)
另一种不使用格式化的方法是使用切片:
format_len5 = lambda val : str(val)[:5]
print format_len5(1.234567) #1.234
print format_len5(-1.234567) #-1.23
注意:这会截断结果,而不是格式化它。