问题
我想知道如何执行以下转换0.0000123456
:0.123456e-04
我的第一种方法是:
printf "%0.6e\n" 0.0000123456
但是,此命令返回:
1.234560e-05
非常感谢您的帮助。
解决方案
VAR3
和VAR4
是数字,D
数字VAR1
是文件名1,VAR2
是文件名2。
D=`awk -v a="$VAR3" -v b="$VAR4" 'BEGIN{printf "%.6e", (a - b)}'`
case ${D:0:1} in
[1234567890] )
EXP=`echo "${D:11:2} - 1" | bc`
if [ "${#EXP}" -eq 1 ]
echo "0.${D:0:1}${D:2:-4}D${D:10:1}0$EXP" >> $VAR1\_$VAR2
else
echo "0.${D:0:1}${D:2:-4}D${D:10:1}$EXP" >> $VAR1\_$VAR2
fi
;;
-)
EXP=`echo "${D:12:2} - 1" | bc`
if [ "${#EXP}" -eq 1 ]
echo "0.${D:0:2}${D:3:-4}D${D:11:1}0$EXP" >> $VAR1\_$VAR2
else
echo "0.${D:0:2}${D:3:-4}D${D:11:1}$EXP" >> $VAR1\_$VAR2
fi
;;
esac