轉換金額大寫的SHELL程式(絕對透過驗證)(轉)
轉換金額大寫的SHELL程式(絕對透過驗證)(轉)[@more@][code:1:7abe7d16ca]#!/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=$1RedFlag=""}# 初始化輸入數字陣列i=1for TmpC in `printf "%.2f" $NumStr | awk -F "." '{print $1$2}' | sed 's/./& /g'`doNums[$i]=$TmpCi=`expr $i + 1`donej=${#Nums[@]} # 為迴圈計數變數附初值為輸入數字的長度k=1 # 為迴圈定位變數附初值(用於確定金額單位)ChnNum="" # 初始化大寫金額字串while [ $j -eq 0 ] && break[ $k -gt 11 ] && {ChnNum=${Num[${Nums[$j]}]}${Unit[`expr $k - 8 `]}$ChnNumj=`expr $j - 1`k=`expr $k + 1`continue}[ $k -gt 7 -a $k -lt 11 ] && {ChnNum=${Num[${Nums[$j]}]}${Unit[`expr $k - 4 `]}$ChnNumj=`expr $j - 1`k=`expr $k + 1`continue}ChnNum=${Num[${Nums[$j]}]}${Unit[$k]}$ChnNumdoj=`expr $j - 1`k=`expr $k + 1`doneChnNum=`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}doChnNum=`echo $ChnNum | sed 's/零零/零/g'`doneecho $ChnNum[/code:1:7abe7d16ca](除錯環境:SCO OpenServer 5.0.5 、ksh 我把原始指令碼傳上來,各位可以儲存後改名直接複製到SCO上執行
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-944834/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 金額大寫轉換(轉)
- 大寫金額轉換 (轉)
- 金額大寫轉換(摘)
- 小寫金額轉換為大寫
- 將金錢的金額轉換為大寫形式
- 將金錢數額轉換為大寫
- 金額大小寫轉換(3)
- plsql小寫金額轉大寫金額函式SQL函式
- 小寫轉大寫金額[SQL SERVER] (轉)SQLServer
- 阿拉伯數字轉換成金額大寫金額(包括小數)
- 小寫轉大寫金額儲存過程[SQL SERVER]儲存過程SQLServer
- 金額轉換
- Excel金額小寫轉大寫公式Excel公式
- 小寫數字金額轉大寫
- JavaScript將輸入的數字金額轉換成對應的中文大寫金額JavaScript
- Python 轉換金額數字大寫為數字小寫Python
- 金額數值轉換為中文大寫
- 小寫轉大寫金額在C++中的實現 (轉)C++
- asp.net 寫一個RMB金額大寫轉換器(原始碼)ASP.NET原始碼
- 金額轉換出現的BUG
- jquery金額數字轉為大寫數字jQuery
- js金錢轉換為小額的功能JS
- js實現的將金錢轉換為大寫形式程式碼例項JS
- JavaScript 人民幣金額格式轉換JavaScript
- 透過XSL轉換XML檔案 (轉)XML
- 在Linux Shell程式中進行身份驗證(轉)Linux
- 相對路徑轉換為絕對路徑的程式碼例項
- .NET神器:輕鬆實現數字轉大寫金額的秘籍與示例程式碼
- excel大寫字母轉換Excel
- Swift 3 銀行金額驗證Swift
- JavaScript人民幣金額格式轉換詳解JavaScript
- 【踩坑系列】使用long型別處理金額,科學計數法導致金額轉大寫異常型別
- 微軟WGA出錯 正版使用者無法透過驗證(轉)微軟
- 在Linux Shell程式中進行身份驗證[修訂版] (轉)Linux
- JavaScript 小寫數字轉換為大寫JavaScript
- 人民幣小寫轉換為大寫
- HACCP原理——驗證程式(轉載)
- 直接透過DAO讀、寫Access檔案 (轉)