日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

将万亿以下的阿拉伯数字转为中文金额

發(fā)布時(shí)間:2023/12/18 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将万亿以下的阿拉伯数字转为中文金额 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

package test.practice.month3;

public class Test005 {
//可以不用swich case將123456789轉(zhuǎn)為一二三四五六七八九
//直接用char[] chars= {'一','二','三','四','五','六','七','八','九'};

public static void main(String[] args) {
System.out.println(getCMoney(102030405067L));
}
private static String getCMoney(long n) {
String result="";
int i=new Long(n/100000000).intValue();
if(i!=0) {
result=result+getThousand(i)+'億';
}
i=new Long((n%100000000)/10000).intValue();
if(i!=0) {
result=result+getThousand(i)+'萬(wàn)';
}else {
result=result+'零';
}
i=new Long(n%10000).intValue();
if(i!=0) {
result=result+getThousand(i);
}
result+="元整";
if(result.charAt(0)=='零') {
result=result.substring(1);
}
return result;
}
private static String getThousand(int n) {
String result="";
int i=n/1000;
if(i!=0) {
result=result+getChar(i)+'仟';
}
i=(n%1000)/100;
if(i!=0) {
result=result+getChar(i)+'佰';
}
else {
result=result+'零';
}
i=(n%100)/10;
if(i!=0) {
result=result+getChar(i)+'拾';
}
else {
result=result+'零';
}
i=n%10;
if(i!=0) {
result=result+getChar(i);
}
result=result.replace("零零", "零");
if(result.charAt(0)=='零') {
result=result.substring(1);
}
if(result.charAt(result.length()-1)=='零') {
result=result.substring(0, result.length()-1);
}
return result;
}
private static char getChar(int i) {
char c;
switch(i) {
case 1:
c='壹';
break;
case 2:
c='貳';
break;
case 3:
c='叁';
break;
case 4:
c='肆';
break;
case 5:
c='伍';
break;
case 6:
c='陸';
break;
case 7:
c='柒';
break;
case 8:
c='捌';
break;
case 9:
c='玖';
break;
default:c='越';
}
return c;
}
}

?

網(wǎng)上找來(lái)的別人的更好的方法

public class Test007 {
private static final char[] UNIT = "萬(wàn)千佰拾億千佰拾萬(wàn)千佰拾元角分".toCharArray();
private static final char[] DIGIT = "零壹貳叁肆伍陸柒捌玖".toCharArray();
private static final double MAX_VALUE = 9999999999999.99D;

public static String change(double v) {
if (v < 0 || v > MAX_VALUE) {
return "參數(shù)非法!";
}
long l =(long)(v*100);
if (l == 0) {
return "零元整";
}
String strValue = l + "";
// j用來(lái)控制單位
int j = UNIT.length - strValue.length();
String rs = "";
boolean isZero = false;
for (int i = 0;i < strValue.length(); i++, j++) {
char ch = strValue.charAt(i);
if (ch == '0') {
isZero = true;
if (UNIT[j] == '億' || UNIT[j] == '萬(wàn)' || UNIT[j] == '元') {
rs = rs + UNIT[j];
isZero = false;
}
} else {
if (isZero) {
rs = rs + "零";
isZero = false;
}
rs = rs + DIGIT[ch - '0'] + UNIT[j];
}
}
if (!rs.endsWith("分")&&!rs.endsWith("角")) {
rs = rs + "整";
}
rs = rs.replaceAll("億萬(wàn)", "億");
rs = rs.replaceAll("^壹拾", "拾");
return rs;
}
public static void main(String[] args) {
System.out.println(Test007.change(9999999999999.90D));
}
}

轉(zhuǎn)載于:https://www.cnblogs.com/yuezeyuan/p/7754530.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的将万亿以下的阿拉伯数字转为中文金额的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。