如何将尾随零添加到整数

时间:2016-01-09 00:13:02

标签: python python-2.7

我有一个正整数变量,其值可以在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位数)

4 个答案:

答案 0 :(得分:10)

您甚至不需要格式化运算符,只需要普通的str方法。用零判断右对齐:

x.zfill(3)

左对齐零:

x.ljust(3, '0')

如果x当前是str,则您需要先在此x int中填充str。此时,可能值得使用格式化运算符,因为其他人建议在需要调整时直接生成最终str,没有中间<form action="duel.php" name="duel" id="duel"> <input type="text" id="betamount" name="betamount"> <?php $data = $_GET['betamount']; echo $data; ?> </form>

答案 1 :(得分:5)

我不知道为什么零被砍掉(理想情况下你应该解决问题的根源),但你可以将数字格式化为字符串,然后将它们转回int s:

numbers = [1, 19, 255]
numbers = [int('{:<03}'.format(number)) for number in numbers]

左对齐每个号码<,字段3字符宽,用0填充额外字符。

答案 2 :(得分:5)

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

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

有关ljust的更多信息,请点击此处: https://docs.python.org/2/library/stdtypes.html#string-methods

答案 3 :(得分:2)

如问题中所述,毫秒应该是1 -> 001,而不是100。一毫秒是千分之一秒,而不是十分之一。

[str(num).zfill(3) for num in numbers]

或使用具有相反路线的Tigerhawk方法:

["{:>03}".format(num) for num in numbers]