请考虑以下数字:
1000.10
1000.11
1000.113
我想将它们以python格式打印出来:
1,000.10
1,000.11
1,000.11
以下转换几乎可以做到这一点,除了每当小数点右边的第二个数字为零时,都会忽略零,结果该数字不能正确排列。
这是我的尝试:
for n in [1000.10, 1000.11, 1000.112]:
nf = '%.2f' %n # nf is a 2 digit decimal number, but a string
nff = float(nf) # nff is a float which the next transformation needs
n_comma = f'{nff:,}' # this puts the commas in
print('%10s' %n_comma)
1,000.1
1,000.11
1,000.11
有办法避免在第一个数字中省略结尾的零吗?
答案 0 :(得分:1)
您需要格式说明符',.2f'
。如您所述,,
执行数千个逗号分隔,而.2f
指定保留两位数:
print([f'{number:,.2f}' for number in n])
输出:
['1,000.10', '1,000.11', '1,000.11']
答案 1 :(得分:0)
You can simply use f'{n:,.2f}'
to combine the thusand separator and the 2 decimal digits format specifiers:
for n in [1000.10, 1000.11, 1000.112]:
print(f'{n:,.2f}')
Outputs
1,000.10
1,000.11
1,000.11
答案 2 :(得分:0)
您也许可以这样做:
num = 100.0
print(str(num) + "0")
因此,您将数字打印为字符串,最后加上0。 更新: 为了避免对所有数字都如此,请尝试执行以下操作:
if num == 1000.10:
#add the zero
elif num == 1000.20:
#again, add the zero
#and so on and so on...
因此,如果数字结尾处为零(十进制值为.10,.20,.30等),则加1,否则不加。