首页 > 解决方案 > 如何拆分未知号码

问题描述

将以下数字(此处为时间度量)想象为给定程序的输出:

0.000000000123

我将如何拆分它以便我可以像这样阅读它:

000 seconds 000 miliseconds 000 microseconds 000 nanoseconds 123 picoseconds

我想对任何“未知”十进制(逗号分隔)数字执行此操作。

谢谢!

标签: python

解决方案


将您的值转换为字符串并适当地格式化。例如(我假设你总是想要皮秒精度):

units=["","milli","micro","nano","pico"]
val = 0.000000000123
s = f'{val:016.12f}'.replace(".","")
x = ""
for i,u in enumerate(units):
    x += f'{s[i*3:i*3+3]:3} {u}seconds '

x
'000 seconds 000 milliseconds 000 microseconds 000 nanoseconds 123 picoseconds '

编辑

两个 f 弦如何工作:

第一个将值转换为长度为 16 的字符串,尾随零和小数点后的 12 位数字 - 然后replace删除该点,因为我们不需要它。所以我们有一个 15 位的字符串,每个度量单位 3 位。

第二个采用三个数字并在每个数字上添加前缀(“milli”,“micro”,...)和单词“seconds”。在循环结束时,我们添加了正确的测量单位的五个三元组。


推荐阅读