金额小写转大写金额小写转大写
public String hangeToBig(double value){
char[] hunit={ '拾 ', '佰 ', '仟 '}; //段内位置表示
char[] vunit={ '万 ', '亿 '}; //段名表示
char[] digit={ '零 ', '壹 ', '贰 ', '叁 ', '肆 ', '伍 ', '陆 ', '柒 ', '
捌 ', '玖 '}; //数字表示
long midVal = (long)(value*100); //转化成整形
String va...
金额小写转大写
public String hangeToBig(double value){
char[] hunit={ '拾 ', '佰 ', '仟 '}; //段内位置
示
char[] vunit={ '万 ', '亿 '}; //段名表示
char[] digit={ '零 ', '壹 ', '贰 ', '叁 ', '肆 ', '伍 ', '陆 ', '柒 ', '
捌 ', '玖 '}; //数字表示
long midVal = (long)(value*100); //转化成整形
String valStr=String.valueOf(midVal); //转化成字符串
String head=valStr.substring(0,valStr.length()-2);
//取整数部分
String rail=valStr.substring(valStr.length()-2); //取小数部分
String prefix= " "; //整数部分转化的结果
String suffix= " "; //小数部分转化的结果
//处理小数点后面的数
if(rail.equals( "00
")){
//如果小数部分为0
suffix= "整 ";
} else{
suffix=digit[rail.charAt(0)- '0 ']+ "角 "+digit[rail.charAt(1)- '0 ']+
"分 "; //否则把角分转化出来
}
//处理小数点前面的数
char[] chDig=head.toCharArray(); //把整数部分转化成字符数组
char zero= '0 ';
//标志 '0 '表示出现过0
byte zeroSerNum = 0; //连续出现0的次数
for(int i=0;i
0 &&zeroSerNum < 4){
prefix += vunit[vidx-1];
zero= '0 ';
}
continue;
}
zeroSerNum = 0;
//连续0次数清零
if(zero != '0 ')
{
//如果标志不为0,则加上,例如万,亿什么的
prefix+=zero;
zero= '0 ';
}
prefix+=digit[chDig[i]- '0 '];
//转化该数字表示
if(idx > 0) prefix += hunit[idx-1];
if(idx==0 && vidx> 0){
prefix+=vunit[vidx-1];
//段结束位置应该加上段名如万,亿
}
}
if(prefix.length() > 0)
prefix += '圆 ';
//如果整数部分存在,则有圆的字样
return prefix+suffix;
//返回正确表示
}
本文档为【金额小写转大写】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。