免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1636 | 回复: 4
打印 上一主题 下一主题

如何使小数金额转化为银行金状态? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-19 13:30 |只看该作者 |倒序浏览
各位朋友,因本人最近搞一小程序(打印程序),例如

1|姓名|工资|980.00| 
2|姓名|工资|560.00| 要求转为

1|姓名|工资|玖佰捌拾元|
2|姓名|工资|伍佰陆拾元|

多谢!

论坛徽章:
0
2 [报告]
发表于 2003-06-19 13:47 |只看该作者

如何使小数金额转化为银行金状态?

//判断输入数是否有小数点,有,返回1,没有返回0
judge_dec()
{
        echo $1|awk '{
        if ($1~/\./)
                print 1
        else
                print 0
        }'
}
//返回输入数每个数字对应的大写汉字
numtochar()
{
        numlist=`expr $1 + 1`
        chinese="零 壹 贰 叁 肆 伍 陆 柒 捌 玖"
        echo $chinese|awk '{print $"'$numlist'"}'
}
//返回输入数每个数字对应的人名币单位
numtoRMB()
{
        numlist=`expr $1 + 1`
        rmb="元 拾 佰 仟 万 拾 佰 仟 亿 拾 佰 仟"
        echo $rmb|awk '{print $"'$numlist'"}'
}

numtochinese()
{
        num=$1
        str=""

        dict_ret=`judge_dec $num`

        if [ "$dict_ret" = "0" ];then
                echo "*****"
                intenumtochina $1
                echo "*****"
        else
                echo "%%%%%"
                decinumtochina $1
                echo "%%%%%"
        fi
}
//小数点后的数字转换
decinumtochina()
{
        len=`echo $1|awk '{print length($1)}'`
        len=`expr $len - 1`
        deci_num=`echo $1 $len|awk '{print substr($1,$2,2)}'`
        len=`expr $len - 2`
        inte_num=`echo $1 $len|awk '{print substr($1,1,$2)}'`
        str=`intenumtochina $inte_num`
        jnum=`echo $deci_num|awk '{print substr($1,1,1)}'`
        jstr=`numtochar $jnum`"½Ç"
        fnum=`echo $deci_num|awk '{print substr($1,2,1)}'`
        fstr=`numtochar $fnum`"·Ö"
        str=$str$jstr$fstr
        echo $str
}

//小数点前的整数转换
intenumtochina()
{
        i=1
        num=$1
        ChinaStr=""
        len=`echo $num|awk '{print length($1)}'`
        len1=`echo $num|awk '{print length($1)}'`
        while [ $i -le $len ]; do
                snum=`echo $num $i|awk '{printf substr($1,$2,1)}'`
                i=`expr $i + 1`
                len1=`expr $len1 - 1`
                if [ $snum -eq 0 ];then
                        ChinaStr=$ChinaStr`numtochar $snum`
                else
                        ChinaStr=$ChinaStr`numtochar $snum``numtoRMB $len1`
                fi
        done
        echo $ChinaStr|sed 's/Á&Á&*/Á&/g'
}
numtochinese 43885.06
numtochinese 4578885

论坛徽章:
0
3 [报告]
发表于 2003-06-19 16:03 |只看该作者

如何使小数金额转化为银行金状态?

记得精华贴子里有自己可以找找

论坛徽章:
0
4 [报告]
发表于 2003-06-19 17:49 |只看该作者

如何使小数金额转化为银行金状态?

我试试看吧

论坛徽章:
0
5 [报告]
发表于 2003-06-20 10:01 |只看该作者

如何使小数金额转化为银行金状态?

http://www.chinaunix.net/forum/viewtopic.php?t=87885
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP