英文:
F-string not formatting floats into an integer
问题
通常,我使用%
字符串格式化。但是,正如我发现的,f-string
是新的字符串格式化方式,而且速度更快,我想使用它。<br/>但是,当我尝试使用f-string
将浮点数格式化为整数时,我遇到了问题。以下是我尝试过的内容:<br/>使用%
字符串格式化
'%5d'%1223 # 得到 --> ' 1223'
'%5d'%1223.555 # 得到 --> ' 1223'
使用f-string
格式化
f'{1223:5d}' # 得到 --> ' 1223' ==> 正确
f'{1223.555:5d}' # 报错
# 错误信息为“ValueError: Unknown format code 'd' for object of type 'float'”
我是否漏掉了什么?
英文:
Usually, I use %
string formatting. But, as I discovered f-string
is the new way of string formatting and it is faster as well, I want to use it. <br/>
But, I am facing a problem when formatting a float into an integer using f-string
. Following is what I have tried:<br/>
Using %
string formatting
'%5d'%1223 # yields --> ' 1223'
'%5d'%1223.555 # yields --> ' 1223'
Using f-string
formatting
f'{1223:5d}' # yields --> ' 1223' ==> correct
f'{1223.555:5d}' # gives error
# error is "ValueError: Unknown format code 'd' for object of type 'float'"
Am I missing something?
答案1
得分: 2
错误的原因是格式说明符 d
专门用于格式化整数,而不是浮点数。您可以改用通用格式说明符 f
。
f'{int(1223.555):5f}'
英文:
The reason for this error is that the format specifier d
is specifically for formatting integers, not floats.You can use the general format specifier f instead.
f'{int(1223.555):5d}'
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论