欢迎来到我的地盘:今天是

若得山花插满头,莫问奴归处!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
/*
===========================================
//转换成大写金额
===========================================
*/

Number.prototype.toMoney 
= function()
{
// Constants:
var MAXIMUM_NUMBER = 99999999999.99;
// Predefine the radix characters and currency symbols for output:
var CN_ZERO= "";
var CN_ONE= "";
var CN_TWO= "";
var CN_THREE= "";
var CN_FOUR= "";
var CN_FIVE= "";
var CN_SIX= "";
var CN_SEVEN= "";
var CN_EIGHT= "";
var CN_NINE= "";
var CN_TEN= "";
var CN_HUNDRED= "";
var CN_THOUSAND = "";
var CN_TEN_THOUSAND= "";
var CN_HUNDRED_MILLION= "亿";
var CN_SYMBOL= "";
var CN_DOLLAR= "";
var CN_TEN_CENT = "";
var CN_CENT= "";
var CN_INTEGER= "";
 
// Variables:
var integral; // Represent integral part of digit number.
var decimal; // Represent decimal part of digit number.
var outputCharacters; // The output result.
var parts;
var digits, radices, bigRadices, decimals;
var zeroCount;
var i, p, d;
var quotient, modulus;
 
if (this > MAXIMUM_NUMBER)
{
return "";
}

 
// Process the coversion from currency digits to characters:
//
 Separate integral and decimal parts before processing coversion:

 parts 
= (this + "").split(".");
if (parts.length > 1
{
integral 
= parts[0];
decimal 
= parts[1];
// Cut down redundant decimal digits that are after the second.
decimal = decimal.substr(02);
}

else 
{
integral 
= parts[0];
decimal 
= "";
}

// Prepare the characters corresponding to the digits:
digits= new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE);
radices
= new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);
bigRadices
= new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION);
decimals
= new Array(CN_TEN_CENT, CN_CENT);

 
// Start processing:
 outputCharacters = "";
// Process integral part if it is larger than 0:
if (Number(integral) > 0
{
zeroCount 
= 0;
for (i = 0; i < integral.length; i++
{
= integral.length - i - 1;
= integral.substr(i, 1);
quotient 
= p / 4;
modulus 
= p % 4;
if (d == "0"
{
zeroCount
++;
}

else 
{
if (zeroCount > 0)
{
outputCharacters 
+= digits[0];
}

zeroCount 
= 0;
outputCharacters 
+= digits[Number(d)] + radices[modulus];
}


if (modulus == 0 && zeroCount < 4
{
outputCharacters 
+= bigRadices[quotient];
}

}


outputCharacters 
+= CN_DOLLAR;
}


// Process decimal part if there is:
if (decimal != ""
{
for (i = 0; i < decimal.length; i++
{
= decimal.substr(i, 1);
if (d != "0"
{
outputCharacters 
+= digits[Number(d)] + decimals[i];
}

}

}


// Confirm and return the final output string:
if (outputCharacters == ""
{
outputCharacters 
= CN_ZERO + CN_DOLLAR;
}

if (decimal == ""
{
outputCharacters 
+= CN_INTEGER;
}


outputCharacters 
= CN_SYMBOL + outputCharacters;
return outputCharacters;
}
posted on 2007-06-28 09:04  莫问奴归处  阅读(455)  评论(0编辑  收藏  举报
轩轩娃