繁体   English   中英

如何将尾随零添加到整数

[英]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填充额外的字符。

您可以使用ljuststr执行此操作,然后将结果转换为int

>>> numbers = [1, 19, 255]
>>> [int(str(num).ljust(3, '0')) for num in numbers]
[100, 190, 255]

更多关于这里的信息: httpsljust

如问题所述,毫秒应为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM