我Decimal在Python中有一些实例。我希望格式化它们
Decimal
Decimal('1') => '1.00' Decimal('12.0') => '12.00' Decimal('314.1') => '314.10' Decimal('314.151') => '314.151'
因此,请确保始终至少保留两个小数位,甚至可能更多。虽然不存在舍入到n小数位的解决方案的短缺,但我找不到找到确保数字下限的整洁方法。
n
我当前的解决方案是计算:
first = '{}'.format(d) second = '{:.2f}'.format(d)
并选择两者中较长的一个。但是,它似乎有些骇人听闻。
如果您希望避免出现字符串问题:
if d*100 - int(d*100): print str(d) else: print ".2f" % d
未经测试的代码,但它 应该可以 工作。
这是这样的:
d = 12.345
100倍
1234.5
负整数(1234.5)
1234.5-1234 = 0.5
.5!= 0
这意味着有3个或更多的小数位。
打印str(12.345)
即使您执行12.3405:
1234.05-1234 = .05
.05!= 0
但是如果您有12.3:
1230-1230 = 0
这意味着要用%.2f打印。