亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 5021 | 回復(fù): 16
打印 上一主題 下一主題

[原創(chuàng)]轉(zhuǎn)換金額大寫的SHELL程序(絕對通過驗證)。  關(guān)閉 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2003-09-18 08:51 |只看該作者 |倒序瀏覽
  1. #!/bin/ksh
  2. # Program Name : Num2Chn.sh
  3. # Programmer   : 呂永輝(仙桃市信用聯(lián)社)
  4. # 首先判斷輸入的是否為數(shù)字
  5. printf "%.2f" $1 >/dev/null 2>&1 3>&1 || {
  6.    echo "輸入非法!!!";exit
  7. }
  8. # 定義數(shù)字?jǐn)?shù)組
  9. Num[0]="零" Num[1]="壹" Num[2]="貳" Num[3]="叁" Num[4]="肆" Num[5]="伍"
  10. Num[6]="陸" Num[7]="柒" Num[8]="捌" Num[9]="玖"
  11. # 定義金額單位數(shù)組
  12. Unit[1]="分" Unit[2]="角" Unit[3]="元" Unit[4]="拾" Unit[5]="佰" Unit[6]="仟"
  13. Unit[7]="萬" Unit[11]="億"
  14. # 處理負(fù)數(shù)的情況(紅字)
  15. [ `echo $1 | grep "-"` ] && {
  16. NumStr=`echo $1 | sed 's/^.//'`
  17. RedFlag="(紅)"
  18. } || {
  19. NumStr=$1
  20. RedFlag=""
  21. }
  22. # 初始化輸入數(shù)字?jǐn)?shù)組
  23. i=1
  24. for TmpC in `printf "%.2f" $NumStr | awk -F "." '{print $1$2}' | sed 's/./& /g'`
  25. do
  26.   Nums[$i]=$TmpC
  27.   i=`expr $i + 1`
  28. done
  29. j=${#Nums[@]}       # 為循環(huán)計數(shù)變量附初值為輸入數(shù)字的長度
  30. k=1                 # 為循環(huán)定位變量附初值(用于確定金額單位)
  31. ChnNum=""           # 初始化大寫金額字符串
  32. while
  33.   [ $j -eq 0 ] && break
  34.   [ $k -gt 11 ] && {
  35.     ChnNum=${Num[${Nums[$j]}]}${Unit[`expr $k - 8 `]}$ChnNum
  36.     j=`expr $j - 1`
  37.     k=`expr $k + 1`
  38.     continue
  39. }
  40.   [ $k -gt 7 -a $k -lt 11 ] && {
  41.     ChnNum=${Num[${Nums[$j]}]}${Unit[`expr $k - 4 `]}$ChnNum
  42.     j=`expr $j - 1`
  43.     k=`expr $k + 1`
  44.     continue
  45. }
  46.   ChnNum=${Num[${Nums[$j]}]}${Unit[$k]}$ChnNum
  47. do
  48.   j=`expr $j - 1`
  49.   k=`expr $k + 1`
  50. done
  51. ChnNum=`echo $RedFlag$ChnNum | sed 's/零分/整/' | sed 's/零角/零/g' \
  52.             | sed 's/零拾/零/g' | sed 's/零佰/零/g' | sed 's/零仟/零/g'\
  53.             | sed 's/零整/整/' | sed 's/零零零零萬/零/'`
  54. # 下面的循環(huán)用于去掉字符串中連續(xù)的零
  55. while
  56.   [ `echo $ChnNum | grep "零零"` ] || {
  57.      ChnNum=`echo $ChnNum  | sed 's/零元/元/'| sed 's/零萬/萬/' \
  58.        | sed 's/零億/億/' | sed 's/^元//' | sed 's/^零//' | sed 's/^整$/零元&/`
  59.      break
  60. }
  61. do
  62.   ChnNum=`echo $ChnNum | sed 's/零零/零/g'`
  63. done
  64. echo $ChnNum
復(fù)制代碼

(調(diào)試環(huán)境:SCO OpenServer 5.0.5 、ksh )     
我把原始腳本傳上來,各位可以保存后改名直接拷貝到SCO上執(zhí)行。

Num2Chn.gif

1.82 KB, 下載次數(shù): 4325

轉(zhuǎn)換金額大寫的SHELL腳本

論壇徽章:
0
2 [報告]
發(fā)表于 2003-09-18 14:29 |只看該作者

[原創(chuàng)]轉(zhuǎn)換金額大寫的SHELL程序(絕對通過驗證)。

不錯,就是速度太慢。!

論壇徽章:
0
3 [報告]
發(fā)表于 2003-09-19 11:38 |只看該作者

[原創(chuàng)]轉(zhuǎn)換金額大寫的SHELL程序(絕對通過驗證)。

我copy來作為一個函數(shù)使用,怎么總是報錯:“syntax error: unexpected end of file”,在函數(shù)后面多加個}就好了,但是還是不能運(yùn)行

論壇徽章:
0
4 [報告]
發(fā)表于 2003-09-19 16:52 |只看該作者

[原創(chuàng)]轉(zhuǎn)換金額大寫的SHELL程序(絕對通過驗證)。

事故,請緊急修復(fù)!

論壇徽章:
0
5 [報告]
發(fā)表于 2003-09-19 19:14 |只看該作者

[原創(chuàng)]轉(zhuǎn)換金額大寫的SHELL程序(絕對通過驗證)。

do
  Nums[$i]=$TmpC
  i=`expr $i + 1`
done
這里不行
j=${#Nums[@]}       # 為循環(huán)計數(shù)變量附初值為輸入數(shù)字的長度
這里不行

論壇徽章:
0
6 [報告]
發(fā)表于 2003-09-19 22:30 |只看該作者

[原創(chuàng)]轉(zhuǎn)換金額大寫的SHELL程序(絕對通過驗證)。

1、 此程序比較實(shí)用,并且顯示出作者的SHELL 功力。銀行科技人員中擅長SHELL的人并不多。
   2、我在True64 UNIX 環(huán)境下將此程序調(diào)試通過,程序直接拷貝,幾乎不用修改(ksh).
    3、有一個小毛病,當(dāng)輸入 -0.24 時顯示不正確,顯示為“(紅)元貳角肆分”。原因在于下面一行。
     ChnNum=`echo $ChnNum  | sed 's/零元/元/'| sed 's/零萬/萬/' \
       | sed 's/零億/億/' | sed 's/^元//' | sed 's/^零//' | sed 's/^整$/零元&/`
   4、應(yīng)該將$RedFlag$ChnNum 組裝放在最后,不在中間過程中進(jìn)行組裝。
    echo "${RedFlag}${ChnNum}"

論壇徽章:
0
7 [報告]
發(fā)表于 2003-09-20 00:04 |只看該作者

[原創(chuàng)]轉(zhuǎn)換金額大寫的SHELL程序(絕對通過驗證)。

bash-2.03$  a
awk:語句錯 在第 1 行附近
awk:漏出 在第 1 行附近
./a[53]: 語句錯在行2 : `|' 非期望的
bash-2.03$

論壇徽章:
0
8 [報告]
發(fā)表于 2003-09-20 21:37 |只看該作者

[原創(chuàng)]轉(zhuǎn)換金額大寫的SHELL程序(絕對通過驗證)。

原帖由 "rooting" 發(fā)表:
| sed 's/^零//' | sed 's/^整$/零元&/`
   4、應(yīng)該將$RedFlag$ChnNum 組裝放在最后,不在中間過程中進(jìn)行組裝。
    echo "${RedFlag}${ChnNum}"
  
謝謝你的提醒!

論壇徽章:
0
9 [報告]
發(fā)表于 2003-09-23 10:45 |只看該作者

[原創(chuàng)]轉(zhuǎn)換金額大寫的SHELL程序(絕對通過驗證)。

問一下 轉(zhuǎn)換 10000000的結(jié)果正確嗎?

論壇徽章:
0
10 [報告]
發(fā)表于 2003-09-23 16:05 |只看該作者

[原創(chuàng)]轉(zhuǎn)換金額大寫的SHELL程序(絕對通過驗證)。

[quote]原帖由 "zhangyh123"]問一下 轉(zhuǎn)換 10000000的結(jié)果正確嗎?[/quote 發(fā)表:
  
  轉(zhuǎn)換 10000000的結(jié)果為:壹仟萬元整
有問題嗎?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP