將金錢的金額轉換為大寫形式

antzone發表於2017-03-14

金錢的大寫形式的重要性是不言而喻的,這可以有效的防止對已有數字的篡改,本章節分享一段程式碼,能夠將阿拉伯數字形式的金額轉換為大寫形式,程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script type="text/javascript">
function clickchange(obj)
{
  var aaval=obj.value;
  document.getElementById("bb").value=ChinaCost(aaval);
}
function ChinaCost(numberValue)
{
  var numberValue=new String(Math.round(numberValue*100)); // 數字金額
  var chineseValue=""; // 轉換後的漢字金額
  var String1 = "零壹貳叄肆伍陸柒捌玖"; // 漢字數字
  var String2 = "萬仟佰拾億仟佰拾萬仟佰拾元角分"; // 對應單位
  var len=numberValue.length; // numberValue 的字串長度
  var Ch1; // 數字的漢語讀法
  var Ch2; // 數字位的漢字讀法
  var nZero=0; // 用來計算連續的零值的個數
  var String3; // 指定位置的數值
  if(len>15)
  {
    alert("超出計算範圍");
    return "";
  }
  if(numberValue==0)
  {
    chineseValue = "零元整";
    return chineseValue;
  }
  String2 = String2.substr(String2.length-len, len); // 取出對應位數的STRING2的值
  for(var i=0; i<len; i++)
  {
    String3 = parseInt(numberValue.substr(i, 1),10); // 取出需轉換的某一位的值
    if(i!= (len - 3) && i != (len - 7) && i != (len - 11) && i !=(len - 15) )
    {
      if( String3 == 0 )
      {
        Ch1 = "";
        Ch2 = "";
        nZero = nZero + 1;
      }
      else if( String3 != 0 && nZero != 0 )
      {
        Ch1 = "零" + String1.substr(String3, 1);
        Ch2 = String2.substr(i, 1);
        nZero = 0;
      }
      else
      {
        Ch1 = String1.substr(String3, 1);
        Ch2 = String2.substr(i, 1);
        nZero = 0;
      }
    }
    else // 該位是萬億,億,萬,元位等關鍵位
    {
      if( String3 != 0 && nZero != 0 )
      {
        Ch1 = "零" + String1.substr(String3, 1);
        Ch2 = String2.substr(i, 1);
        nZero = 0;
      }
      else if( String3 != 0 && nZero == 0 )
      {
        Ch1 = String1.substr(String3, 1);
        Ch2 = String2.substr(i, 1);
        nZero = 0;
      }
      else if( String3 == 0 && nZero >= 3 )
      {
        Ch1 = "";
        Ch2 = "";
        nZero = nZero + 1;
      }
      else
      {
        Ch1 = "";
        Ch2 = String2.substr(i, 1);
        nZero = nZero + 1;
      }
      if( i == (len - 11) || i == (len - 3))// 如果該位是億位或元位,則必須寫上
      { 
        Ch2 = String2.substr(i, 1);
      }
    }
    chineseValue = chineseValue + Ch1 + Ch2;
  }
  if ( String3 == 0 )// 最後一位(分)為0時,加上"整"
  { 
    chineseValue = chineseValue + "整";
  }
  return chineseValue;
}
window.onload=function()
{
  var bt=document.getElementById("bt");
  var aa=document.getElementById("aa");
  bt.onclick=function(){clickchange(aa)}
}
</script>
</head>
<body>
<input type="text" id="aa" />
<input type="text" id="bb" />
<input type="button" value="轉換" id="bt" />
</body>
</html>

以上程式碼中,在文字框中寫入小寫形式的數字,點選按鈕之後能夠將其轉換為大寫形式。

相關文章