[英]How to add Trailing zeroes to an integer
我有一个正整数变量,其值可以在0到999之间。然后将该整数传递给软件。
要传入此软件,整数应始终为3位数。 但问题是,它应该有尾随零。
例如:
1 should be passed as 100
19 should be passed as 190
255 should be passed as 255
可以通过检查变量的长度并乘以10或100来完成,具体取决于长度。 但有没有更好的Python替代方案。 这对于值0也不起作用。
(注意:尾随零是因为整数值实际上是一个毫秒值。软件逐位读取值,它总是需要3位数)
你甚至不需要格式化操作符,只需要简单的str
方法。 用零来正确地证明:
x.zfill(3)
用零左对齐:
x.ljust(3, '0')
如果x
当前是int
则需要在此场景中首先将x
包装在str
中。 此时,可能值得使用格式化运算符,因为其他人建议在需要调整时直接生成最终str
,没有中间str
。
我不知道为什么零被砍掉(理想情况下你应该修复问题的根源),但你可以将数字格式化为字符串,然后将它们转回int
:
numbers = [1, 19, 255]
numbers = [int('{:<03}'.format(number)) for number in numbers]
这左对齐每个数字<
,在3
字符宽的字段中,用0
填充额外的字符。
您可以使用ljust
和str
执行此操作,然后将结果转换为int
。
>>> numbers = [1, 19, 255]
>>> [int(str(num).ljust(3, '0')) for num in numbers]
[100, 190, 255]
更多关于这里的信息: https : ljust
如问题所述,毫秒应为1 -> 001
,而不是100
。 一毫秒是千分之一秒,而不是十分之一秒。
[str(num).zfill(3) for num in numbers]
或者使用具有相反对齐方式的Tigerhawk方法:
["{:>03}".format(num) for num in numbers]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.