Python格式的小数,小数位数最小
我有一些Python中的Python格式的小数,小数位数最小,python,format,decimal,Python,Format,Decimal,我有一些Python中的Decimal实例。我希望将其格式设置为: Decimal('1') => '1.00' Decimal('12.0') => '12.00' Decimal('314.1') => '314.10' Decimal('314.151') => '314.151' 因此,确保始终至少有两位小数,可能更多。虽然不缺少四舍五入到小数位数的解决方案,但我找不到确保数字下限的简洁方法 我目前的解决方案是计算: first = '{
Decimal
实例。我希望将其格式设置为:
Decimal('1') => '1.00'
Decimal('12.0') => '12.00'
Decimal('314.1') => '314.10'
Decimal('314.151') => '314.151'
因此,确保始终至少有两位小数,可能更多。虽然不缺少四舍五入到小数位数的解决方案,但我找不到确保数字下限的简洁方法
我目前的解决方案是计算:
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=.5
.5!=0
这意味着小数点后有3位或更多位
打印str(12.345)
即使你做了12.3405:
1234.05-1234=.05
.05!=0
但如果你有12.3:
1230-1230=0
这意味着使用%.2f.打印对我来说很好。您可以执行
max((第一,第二),key=len)
。我假设您指的是十进制(float)而不是十进制(string)。不管是哪种方式,您都可以像类“from Decimal import Decimal”中那样对string.Decimal调用float(),这与浮点数非常不同。明白了。我不知道那件事。我的答案仍然有效吗?