数字运算问题
发表于 : 2011-07-19 11:49
其实我是想根据mplayer的到的视屏长度计算毫秒数的,mplayer给出的是xx.xxx形式,比如12.03输出应该为12030
我的计算脚本
v=12.03
a=`echo $v |cut -d. -f 1`
b=`echo $v |cut -d. -f2`
echo $(($((a*1000))+$b))
现在有些情况下算不来,其实归纳下就是比如
echo $((08)) 会报错,更小的数字不会
bash: 08: 数值太大不可为算数进制的基 (错误符号是 "08")
而echo $((8))不会
这是什么原因?
下面是我修改后的代码,很傻
还有,不许用bc
我的计算脚本
v=12.03
a=`echo $v |cut -d. -f 1`
b=`echo $v |cut -d. -f2`
echo $(($((a*1000))+$b))
现在有些情况下算不来,其实归纳下就是比如
echo $((08)) 会报错,更小的数字不会
bash: 08: 数值太大不可为算数进制的基 (错误符号是 "08")
而echo $((8))不会
这是什么原因?
下面是我修改后的代码,很傻
代码: 全选
videolength=$1
secs=`echo $videolength |cut -d. -f 1`
msecs=`echo $videolength |cut -d. -f 2`
a=`echo $msecs |cut -c1`
if [ $a == 0 ]
then
msecs=`echo $msecs |cut -c2-`
[ $msecs -lt 10 ] && msecs=$(($msecs*10))
fi
vlen=$(($msecs+$(($secs*1000))))
echo $vlen