我见过很多关于格式化float
和限制小数位数的问题,但我还没有看到这两个问题同时完成。我希望变量 seconds
的值始终表示为 SS.mmm。
我有
t = int(input('time?: '))
seconds = (t / 1000) % 60
minutes = (t // (1000 * 60)) % 60
hours = (t // (1000 * 60 * 60)) % 24
我想打印小时
、分钟
和秒
,以便它始终遵循 HH:MM :SS.mmm
我的尝试:
print('{}:{}:{}'.format("%02d" % hours, "%02d" % minutes, ("%.3f" % seconds).zfill(2)))
有时我最终会得到 HH:MM:S.mmm。即使有前导零,我也需要有两秒数字。
最佳答案
您应该能够使用 .format()
执行以下操作:
print('{:0>2d}:{:0>2d}:{:06.3f}'.format(hours,minutes,seconds))
特别是,0>2d
强制整数小时
和分钟
的长度为2。此外,06.3f
意味着整个浮点表示形式应为 6 个字符长(包括 '.'
),并且句点右侧有 3 个小数位。
关于Python3.x : Format Float to 2 Digits, 限制为小数点后 3 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45448187/