貨幣小寫轉大寫金額
貨幣小寫轉大寫金額| Id | Title | DateAdded | SourceUrl | PostType | Body | BlogId | Description | DateUpdated | IsMarkdown | EntryName | CreatedTime | IsActive | AutoDesc | AccessPermission |
| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------|
| 16938003| 貨幣小寫轉大寫金額| 2022-11-30T11:55:00| | BlogPost|
public class NumToRMB{
public static void main(String[] args){
System.out.println(changeToBig(Double.parseDouble(args[0])));
}
public static String changeToBig(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(); //把整数部分转化成字符数组
boolean preZero=false; //标志当前位的上一位是否为有效0位(如万位的0对千位无效)
byte zeroSerNum = 0; //连续出现0的次数
for(int i=0;i<chDig.length;i++){ //循环处理每个数字
int idx=(chDig.length-i-1)%4; //取段内位置
int vidx=(chDig.length-i-1)/4; //取段位置
if(chDig[i]=='0'){ //如果当前字符是0
preZero=true;
zeroSerNum++; //连续0次数递增
if(idx==0 && vidx >0 &&zeroSerNum < 4){
prefix += vunit[vidx-1];
preZero=false; //不管上一位是否为0,置为无效0位
}
}else{
zeroSerNum = 0; //连续0次数清零
if(preZero){ //上一位为有效0位
prefix+=digit[0]; //只有在这地方用到'零'
preZero=false;
}
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; //返回正确表示
}
}
| 648658| | 2022-11-30T11:55:00| false| | 2022-11-30T11:54:57.827| true| public class NumToRMB{ public static void main(String[] args){ System.out.println(changeToBig(Double.parseDouble(args[0]))); } public static String ch| Anonymous|
分类:
JAVA
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现