- 论坛徽章:
- 33
|
- #!/bin/sh
- #执行 dig2ch.sh ?????????????.??
- #支持最大到15位数字包括小数点
- numberchar()
- {
- numlist=`expr $1 + 1`
- c_number="零 壹 贰 叁 肆 伍 陆 柒 捌 玖"
- echo $c_number | awk '{print $"'$numlist'"}'
- return 0
- }
- rmbchar()
- {
- numlist=`expr $1 + 1`
- c_number="分 角 null 元 拾 佰 仟 万 拾 佰 仟 亿 拾 佰 仟"
- if [ $1 -eq 2 ] ; then
- echo ""
- else
- echo $c_number | awk '{print $"'$numlist'"}'
- fi
- return 0
- }
- money2chinese()
- {
- i=0
- len=`echo $1 | awk '{print length($0)}'`
- fundstr=$1
- chinese=""
- zerotype=0
- allzero=1
- while [ $i -lt $len ]
- do
- j=`expr $i + 1`
- case `echo $fundstr | awk '{print substr($0,"'$j'", 1)}'` in
- -) chinese="负"
- ;;
- .) if [ -z "$chinese" ]
- then
- chinese=`numberchar 0`
- fi
- if [ $zerotype -eq 1 ]
- then
- chinese=$chinese"`rmbchar 3`"
- zerotype=0
- fi
- ;;
- 0) if [ `expr $len - $i` -eq 12 ]
- then
- chinese=$chinese"`rmbchar 11`"
- fi
- if [ `expr $len - $i` -eq 8 ]
- then
- if [ $allzero -eq 0 ]
- then
- chinese=$chinese"`rmbchar 7`"
- fi
- fi
- zerotype=1
- ;;
- *) if [ `expr $len - $i` -lt 12 ]
- then
- allzero=0
- fi
- if [ $zerotype -eq 1 ]
- then
- chinese=$chinese"`numberchar 0`"
- fi
- num1_9=`echo $fundstr | awk '{print substr($0,"'$j'", 1)}'`
- chinese=$chinese"`numberchar $num1_9`"
- num1_9=`expr $len - $i - 1`
- chinese=$chinese"`rmbchar $num1_9`"
- zerotype=0
- ;;
- esac
- i=`expr $i + 1`
- done
- if [ `expr $fundstr : '.*\(..\)'` -eq "00" ]
- then
- chinese=$chinese"整"
- fi
- echo $chinese
- return 0
- }
- if [ -z "`expr $1 : '[0-9].*\.\([0-9].\)'`" ]
- then
- echo "bad number\n"
- exit 0
- else
- money2chinese $1
- fi
复制代码 |
|