Bash 是否可以使用printf将该整数输出为以下形式的浮点?

Bash 是否可以使用printf将该整数输出为以下形式的浮点?,bash,Bash,在一个脚本中,我在一个变量中存储了执行多个命令的累计时间(毫秒),让我们调用它total\u appeased\u time。例如,它包含以下值: 1001 或 现在,我想要的是以以下形式输出这个值(以s为单位的时间加上训练毫秒) 对于第一个值 0.012 对于第二个值。目前,我是这样做的 printf '%d.%03d s' "$((total_elapsed_time / 1000))" "$((total_elapsed_time % 1000))" 这是可以的,看起来很有效,但我想

在一个脚本中,我在一个变量中存储了执行多个命令的累计时间(毫秒),让我们调用它
total\u appeased\u time
。例如,它包含以下值:

1001

现在,我想要的是以以下形式输出这个值(以s为单位的时间加上训练毫秒)

对于第一个值

0.012
对于第二个值。目前,我是这样做的

printf '%d.%03d s' "$((total_elapsed_time / 1000))" "$((total_elapsed_time % 1000))"
这是可以的,看起来很有效,但我想知道是否有更简单的方法(这样我只需要将变量传递给printf,printf就可以处理数字的格式)

0.012
printf '%d.%03d s' "$((total_elapsed_time / 1000))" "$((total_elapsed_time % 1000))"
for x in 1001 12 1 10 100 1000 10000 ; do
    x=00$x                              # Prepend two zeros, so we can safely
    x=${x:0: -3}.${x: -3}               # insert the dot on the third position from right.
    printf '%.3f\n' $x
done