庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>SCO UNIX>系统管理>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

SCO下转换大写金额的SHELL脚本

 作者:本站收集   日期:2005-3-13
字号选择〖 〗/ 双击滚屏 单击停止   


#!/bin/ksh
# Program Name : Num2Chn.sh
# Programmer : 吕永辉(仙桃市信用联社)
# 首先判断输入的是否为数字
printf "%.2f" $1 >/dev/null 2>&1 3>&1 || {
echo "输入非法!!!";exit
}
# 定义数字数组
Num[0]="零" Num[1]="壹" Num[2]="贰" Num[3]="叁" Num[4]="肆" Num[5]="伍"
Num[6]="陆" Num[7]="柒" Num[8]="捌" Num[9]="玖"
# 定义金额单位数组
Unit[1]="分" Unit[2]="角" Unit[3]="元" Unit[4]="拾" Unit[5]="佰" Unit[6]="仟"
Unit[7]="万" Unit[11]="亿"
# 处理负数的情况(红字)
[ `echo $1 | grep "-"` ] && {
NumStr=`echo $1 | sed 's/^.//'`
RedFlag="(红)"
} || {
NumStr=$1
RedFlag=""
}
# 初始化输入数字数组
i=1
for TmpC in `printf "%.2f" $NumStr | awk -F "." '{print $1$2}' | sed 's/./& /g'`
do
Nums[$i]=$TmpC
i=`expr $i + 1`
done
j=${#Nums[@]} # 为循环计数变量附初值为输入数字的长度
k=1 # 为循环定位变量附初值(用于确定金额单位)
ChnNum="" # 初始化大写金额字符
while
[ $j -eq 0 ] && break
[ $k -gt 11 ] && {
ChnNum=${Num[${Nums[$j]}]}${Unit[`expr $k - 8 `]}$ChnNum
j=`expr $j - 1`
k=`expr $k + 1`
continue
}
[ $k -gt 7 -a $k -lt 11 ] && {
ChnNum=${Num[${Nums[$j]}]}${Unit[`expr $k - 4 `]}$ChnNum
j=`expr $j - 1`
k=`expr $k + 1`
continue
}
ChnNum=${Num[${Nums[$j]}]}${Unit[$k]}$ChnNum
do
j=`expr $j - 1`
k=`expr $k + 1`
done
ChnNum=`echo $RedFlag$ChnNum | sed 's/零分/整/' | sed 's/零角/零/g' \
| sed 's/零拾/零/g' | sed 's/零佰/零/g' | sed 's/零仟/零/g'\
| sed 's/零整/整/' | sed 's/零零零零万/零/'`
# 下面的循环用于去掉字符串中连续的零
while
[ `echo $ChnNum | grep "零零"` ] || {
ChnNum=`echo $ChnNum | sed 's/零元/元/'| sed 's/零万/万/' \
| sed 's/零亿/亿/' | sed 's/^元//' | sed 's/^零//' | sed 's/^整$/零元&/`
break
}
do
ChnNum=`echo $ChnNum | sed 's/零零/零/g'`
done
echo $ChnNum
(调试环境:SCO OpenServer 5.0.5 、ksh )

上一篇:expect教程    下一篇:ESQL/C资料(完全版)四  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-3-13
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿