在zsh中使用printf和计算不起作用

问题描述 投票:0回答:1

我无法在 zsh 中进行计算,同时将其格式化为所需的精度(小数点后两位)。我不知道这是 zsh 特有的还是 bash 中也会发生。例如:

> Tmean=34.888
> SP=34.8
> ERR=$( printf "%.2f" $(( Tmean - SP )) )
> echo $ERR                               
0.0900000000

它进行了适当的舍入,但保留了所有 0。但是:

> printf "%.2f" $ERR
0.09%

为什么它只能在单独的命令中工作?另外,我不知道最后一个输出中的百分号是做什么的。

printf zsh
1个回答
-1
投票

要纠正此问题,您可以在格式化之前将 ERR 转换为浮点数。方法如下:

Tmean=34.888
SP=34.8
ERR=$(echo "scale=2; $Tmean - $SP" | bc)
ERR=$(printf "%.2f" $ERR)
echo $ERR

在最后的输出中,% 符号是因为 $ERR 被视为字符串,但 printf 正在请求浮点数,但没有接收浮点数,当它不输出错误消息时,即 %象征。 希望它有效。祝你有美好的一天,伙计😉

© www.soinside.com 2019 - 2024. All rights reserved.