我应该如何获取一个以秒为单位的数字并以秒为单位显示两位小数?遵循dTime函数的Psuedo代码我不确定但是你会得到我想要的目标.
function time {
echo "$(date +%N)/10000000"
}
function dTime {
echo "($1/100).(${$1:${#1}-3:${#1}-1})"
}
T=$time
sleep 2
T=$dTime T
Run Code Online (Sandbox Code Playgroud)
Ale*_*sky 26
Bash有一个内置的printf功能:
printf "%0.2f\n" $T
Run Code Online (Sandbox Code Playgroud)
下面将输出date +%N除以1000000000,将结果舍入到两个小数位并将结果赋给变量T.
printf -v T "%.2f" $(bc -l <<< "$(date +%N)/1000000000")
Run Code Online (Sandbox Code Playgroud)
如果你只想打印东西,
bc <<< "scale=2; $(date +%N)/1000000000"
Run Code Online (Sandbox Code Playgroud)
如果您不喜欢bc并且想要使用dc(因为它反向抛光,使用起来更轻一些,更有趣),
dc <<< "2 k $(date +%N) 1000000000 / p"
Run Code Online (Sandbox Code Playgroud)
注意区别,printf你将拥有领先优势0,而不是bc和dc.printf和bc(或dc)之间存在另一个区别:printf舍入到最接近的数字到两个小数位,而bc(或dc)舍入正确到两个小数位.如果您想要后一种行为并将结果分配给变量T,您可以使用,例如,
T=$(dc <<< "2 k $(date +%N) 1000000000 / p")
Run Code Online (Sandbox Code Playgroud)
或者,如果你也想要领先0:
T=0.$(dc <<< "2 k $(date +%N) 1000000000 / p")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42856 次 |
| 最近记录: |