自己写的一个大小写金额转化函数,贴出来大家看看
2007-09-21 08:52
561 查看
/*
* 输入为小写金额
* 函数已经在系统开发中的到使用,正确无误(一定条件下)
*/
public String DigitalConversion(String money)
{
String bigwrite="";
String midstr="";
String tempstr="";
int temp=0;
int view0=0;
String[] bigamount={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
String[] util={"分","角","圆","拾","佰","仟","万"};
String sStrmoney=DataFormat(money);
double amount=Double.parseDouble(sStrmoney);
int number=(int)(amount*100.00);
while(number>0){
temp=number%10;
if(temp!=0)break;
number=number/10;
view0++;
}
if(view0==2) midstr+="整";
if(view0>2) midstr+="整圆";
temp=0;
while(number>0){
temp=number%10;
number=number/10;
view0++;
if(temp==0){tempstr="零";continue;}
midstr+=tempstr+util[view0-1]+bigamount[temp];
tempstr="";
}
for(int k=midstr.length()-1;k>=0;k--){
bigwrite+=midstr.substring(k,k+1);
}
return bigwrite;
}
由于项目中需要对大写金额进行打印,本人重新进行了整理,编写了js程序希望对大家有用
此函数可以支持到千亿
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head>
<body>
<script language="javascript">
function DataFormat(mon){
var monstr;
monstr = mon; //考虑到金额显示的问题大家可以在此函数中对初始金额作相应的处理比如,99,999.00-〉99999.00
return monstr;
}
function DigitalConversion(money) {
var bigwrite = "";
var midstr = "";
var tempstr = "";
var mtule = "";
var temp = 0;
var view0 = 0;
var flagi=false;
var flagj=false;
var bigamount = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" );
var util = new Array("分", "角", "圆", "拾", "佰", "仟", "万", "拾", "佰", "仟","亿","拾","佰","仟" );
var sStrmoney = DataFormat(money);
var amount = sStrmoney;
var number = amount * 100.00;
var snumber = number+"";
var len = snumber.length;
if(number % 100000 == 0){
flagi=true;
}
if(number % 10000000000 == 0){
flagj=true;
flagi=false;
}
var div = 10;
while (number > 0) {
temp = number % div;
if (temp != 0)
break;
number = number / 10;
view0++;
}
if (view0 == 2)
midstr += "整";
if (view0 > 2)
midstr += "整圆";
temp = 0;
if(flagi==true){
midstr+="万";
}
if(flagj==true){
midstr+="亿";
}
while (number > 0) {
temp = Math.round(number % 10);
number = Math.floor(number / 10);
view0++;
if(view0 == 3 && temp == 0){
mtule = "圆";
}
if (view0 == 7 && temp == 0) {
mtule = "万";
}
if (view0 == 11 && temp == 0) {
mtule = "亿";
}
if (temp == 0) {
tempstr = "零";
continue;
}
midstr += tempstr + mtule + util[view0 - 1] + bigamount[temp];
tempstr = "";
mtule = "";
}
for (k = midstr.length - 1; k >= 0; k--) {
bigwrite += midstr.charAt(k);
}
if(len == 8 || len == 12){
if (snumber.charAt(0)=='1') {
bigwrite = bigwrite.substring(1, bigwrite.length);
}
}
bigwrite=bigwrite.replace("万万","万");
bigwrite=bigwrite.replace("亿亿","亿");
return bigwrite;
}
function chg(){
document.all.view.value=DigitalConversion(document.all.mon.value);
}
</script>
<input type="text" name="mon" /><br/>
<input name="view" type="text" size="100" maxlength="600"/>
<br/>
<input type="button" value="kaishi" onclick="chg()"/>
</body>
</html>
* 输入为小写金额
* 函数已经在系统开发中的到使用,正确无误(一定条件下)
*/
public String DigitalConversion(String money)
{
String bigwrite="";
String midstr="";
String tempstr="";
int temp=0;
int view0=0;
String[] bigamount={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
String[] util={"分","角","圆","拾","佰","仟","万"};
String sStrmoney=DataFormat(money);
double amount=Double.parseDouble(sStrmoney);
int number=(int)(amount*100.00);
while(number>0){
temp=number%10;
if(temp!=0)break;
number=number/10;
view0++;
}
if(view0==2) midstr+="整";
if(view0>2) midstr+="整圆";
temp=0;
while(number>0){
temp=number%10;
number=number/10;
view0++;
if(temp==0){tempstr="零";continue;}
midstr+=tempstr+util[view0-1]+bigamount[temp];
tempstr="";
}
for(int k=midstr.length()-1;k>=0;k--){
bigwrite+=midstr.substring(k,k+1);
}
return bigwrite;
}
由于项目中需要对大写金额进行打印,本人重新进行了整理,编写了js程序希望对大家有用
此函数可以支持到千亿
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head>
<body>
<script language="javascript">
function DataFormat(mon){
var monstr;
monstr = mon; //考虑到金额显示的问题大家可以在此函数中对初始金额作相应的处理比如,99,999.00-〉99999.00
return monstr;
}
function DigitalConversion(money) {
var bigwrite = "";
var midstr = "";
var tempstr = "";
var mtule = "";
var temp = 0;
var view0 = 0;
var flagi=false;
var flagj=false;
var bigamount = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" );
var util = new Array("分", "角", "圆", "拾", "佰", "仟", "万", "拾", "佰", "仟","亿","拾","佰","仟" );
var sStrmoney = DataFormat(money);
var amount = sStrmoney;
var number = amount * 100.00;
var snumber = number+"";
var len = snumber.length;
if(number % 100000 == 0){
flagi=true;
}
if(number % 10000000000 == 0){
flagj=true;
flagi=false;
}
var div = 10;
while (number > 0) {
temp = number % div;
if (temp != 0)
break;
number = number / 10;
view0++;
}
if (view0 == 2)
midstr += "整";
if (view0 > 2)
midstr += "整圆";
temp = 0;
if(flagi==true){
midstr+="万";
}
if(flagj==true){
midstr+="亿";
}
while (number > 0) {
temp = Math.round(number % 10);
number = Math.floor(number / 10);
view0++;
if(view0 == 3 && temp == 0){
mtule = "圆";
}
if (view0 == 7 && temp == 0) {
mtule = "万";
}
if (view0 == 11 && temp == 0) {
mtule = "亿";
}
if (temp == 0) {
tempstr = "零";
continue;
}
midstr += tempstr + mtule + util[view0 - 1] + bigamount[temp];
tempstr = "";
mtule = "";
}
for (k = midstr.length - 1; k >= 0; k--) {
bigwrite += midstr.charAt(k);
}
if(len == 8 || len == 12){
if (snumber.charAt(0)=='1') {
bigwrite = bigwrite.substring(1, bigwrite.length);
}
}
bigwrite=bigwrite.replace("万万","万");
bigwrite=bigwrite.replace("亿亿","亿");
return bigwrite;
}
function chg(){
document.all.view.value=DigitalConversion(document.all.mon.value);
}
</script>
<input type="text" name="mon" /><br/>
<input name="view" type="text" size="100" maxlength="600"/>
<br/>
<input type="button" value="kaishi" onclick="chg()"/>
</body>
</html>
相关文章推荐
- 一个自己实现的strstr 字符串查找函数,大家看看有什么错误和改进的地方
- 自己新做了一个小站 ,大家来测试一下看看
- 自己写的一个资料验证的asp.net程序,大家看看吧!
- 各位大牛帮忙看看问题出来哪?自己实现一个数组模板类,编译无法通过
- 自己写了一个程序,不知道错那了,大家帮忙看看
- 本人自己写的一个ASP.NET的验证码工具类,以供大家参考。因为本人经验尚浅,如有哪些地方不足或错误,希望大家指出来,不胜感谢!
- 自己写的一个将各种整形列表转化为字符列表的函数
- 今天早上起来写了一个smarty与函数相互结合的一个分页,上网搜了下发现他们写的太复杂,看不懂,自己写吧!写的不好,大家不要笑
- 我写了一个上传服务器前制作缩略图的函数,请大家看看
- 前几天在oracle.com.cn上看到一个爆长的贴子,是一个每日更新的漫画,真的是很搞笑耶。贴出来给大家看看。
- 金额转大写的函数 (网上找到的几个有Bug 只好自己写了一个)
- 一个写js时大家常用的四个公共函数(自己写的,很简单大家都会)
- 看了网上的大多防SQL攻击程序,自己编写了一个函数,比较完美。大家一起测测~
- 软考复习中,复习资料中有很多错误,写出来给自己和大家看看。
- 大家看看我的这个List()函数为什么显示不出来
- 自己做的一个小BLOG系统大家看看~
- 自己写了一个复杂的SQL,大家看看
- php 自己写了一个分页函数!共大家来交流
- js 取一个对象的长度,取出来的是undefined,自己写的一个计算长度的函数解决了。
- 刚在一个论坛看到一篇文章,说的似乎很是高深,我也不太懂,于是转载了过来,大家一起看看