JAVA将数字转表示成相应的钱比如说 数字123450000 就需要表示成1亿2千3百4十5万 方法怎么写2楼的朋友,如果是12345.00的时候,显示的是1万2千3百4拾5元0角0分

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/11 05:22:03

JAVA将数字转表示成相应的钱比如说 数字123450000 就需要表示成1亿2千3百4十5万 方法怎么写2楼的朋友,如果是12345.00的时候,显示的是1万2千3百4拾5元0角0分
JAVA将数字转表示成相应的钱
比如说 数字123450000 就需要表示成1亿2千3百4十5万 方法怎么写
2楼的朋友,如果是12345.00的时候,显示的是1万2千3百4拾5元0角0分

JAVA将数字转表示成相应的钱比如说 数字123450000 就需要表示成1亿2千3百4十5万 方法怎么写2楼的朋友,如果是12345.00的时候,显示的是1万2千3百4拾5元0角0分
public class ShuceUtils {
/**
* 将数字转换成中文表示
* @param smallmoney double
* @return String
*/
public static String TranslateMoneyToChn(double smallmoney) {
String value = String.valueOf(smallmoney);
if (null == value || "".equals(value.trim()))
return "零";
String strCheck, strArr, strFen, strDW, strNum, strBig, strNow;
double d = 0;
try {
d = Double.parseDouble(value);
}
catch (Exception e) {
return "数据" + value + "非法!";
}
strCheck = value + ".";
int dot = strCheck.indexOf(".");
if (dot > 12) {
return "数据" + value + "过大,无法处理!";
}
try {
int i = 0;
strBig = "";
strDW = "";
strNum = "";
long intFen = Math.round(d * 100);
strFen = String.valueOf(intFen);
int lenIntFen = strFen.length();
while (lenIntFen != 0) {
i++;
switch (i) {
case 1:
strDW = "分";
break;
case 2:
strDW = "角";
break;
case 3:
strDW = "圆";
break;
case 4:
strDW = "拾";
break;
case 5:
strDW = "佰";
break;
case 6:
strDW = "仟";
break;
case 7:
strDW = "万";
break;
case 8:
strDW = "拾";
break;
case 9:
strDW = "佰";
break;
case 10:
strDW = "仟";
break;
case 11:
strDW = "亿";
break;
case 12:
strDW = "拾";
break;
case 13:
strDW = "佰";
break;
case 14:
strDW = "仟";
break;
}
switch (strFen.charAt(lenIntFen - 1)) { //选择数字
case '1':
strNum = "壹";
break;
case '2':
strNum = "贰";
break;
case '3':
strNum = "叁";
break;
case '4':
strNum = "肆";
break;
case '5':
strNum = "伍";
break;
case '6':
strNum = "陆";
break;
case '7':
strNum = "柒";
break;
case '8':
strNum = "捌";
break;
case '9':
strNum = "玖";
break;
case '0':
strNum = "零";
break;
}
//处理特殊情况
strNow = strBig;
//分为零时的情况
if ( (i == 1) && (strFen.charAt(lenIntFen - 1) == '0'))
strBig = "整";
//角为零时的情况
else if ( (i == 2) && (strFen.charAt(lenIntFen - 1) == '0')) { //角分同时为零时的情况
if (!strBig.equals("整"))
strBig = "零" + strBig;
}
//元为零的情况
else if ( (i == 3) && (strFen.charAt(lenIntFen - 1) == '0'))
strBig = "圆" + strBig;
//拾-仟中一位为零且其前一位(元以上)不为零的情况时补零
else if ( (i < 7) && (i > 3) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) != '零') && (strNow.charAt(0) != '圆'))
strBig = "零" + strBig;
//拾-仟中一位为零且其前一位(元以上)也为零的情况时跨过
else if ( (i < 7) && (i > 3) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '零')) {}
//拾-仟中一位为零且其前一位是元且为零的情况时跨过
else if ( (i < 7) && (i > 3) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '圆')) {}
//当万为零时必须补上万字
else if ( (i == 7) && (strFen.charAt(lenIntFen - 1) == '0'))
strBig = "万" + strBig;
//拾万-仟万中一位为零且其前一位(万以上)不为零的情况时补零
else if ( (i < 11) && (i > 7) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) != '零') && (strNow.charAt(0) != '万'))
strBig = "零" + strBig;
//拾万-仟万中一位为零且其前一位(万以上)也为零的情况时跨过
else if ( (i < 11) && (i > 7) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '万')) {}
//拾万-仟万中一位为零且其前一位为万位且为零的情况时跨过
else if ( (i < 11) && (i > 7) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '零')) {}
//万位为零且存在仟位和十万以上时,在万仟间补零
else if ( (i < 11) && (i > 8) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '万') && (strNow.charAt(2) == '仟'))
strBig = strNum + strDW + "万零" + strBig.substring(1, strBig.length());
//单独处理亿位
else if (i == 11) {
//亿位为零且万全为零存在仟位时,去掉万补为零
if ( (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '万') && (strNow.charAt(2) == '仟'))
strBig = "亿" + "零" + strBig.substring(1, strBig.length());
//亿位为零且万全为零不存在仟位时,去掉万
else if ( (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '万') && (strNow.charAt(2) != '仟'))
strBig = "亿" + strBig.substring(1, strBig.length());
//亿位不为零且万全为零存在仟位时,去掉万补为零
else if ( (strNow.charAt(0) == '万') && (strNow.charAt(2) == '仟'))
strBig = strNum + strDW + "零" + strBig.substring(1, strBig.length());
//亿位不为零且万全为零不存在仟位时,去掉万
else if ( (strNow.charAt(0) == '万') && (strNow.charAt(2) != '仟'))
strBig = strNum + strDW + strBig.substring(1, strBig.length());
//其他正常情况
else
strBig = strNum + strDW + strBig;
}
//拾亿-仟亿中一位为零且其前一位(亿以上)不为零的情况时补零
else if ( (i < 15) && (i > 11) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) != '零') && (strNow.charAt(0) != '亿'))
strBig = "零" + strBig;
//拾亿-仟亿中一位为零且其前一位(亿以上)也为零的情况时跨过
else if ( (i < 15) && (i > 11) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '亿')) {}
//拾亿-仟亿中一位为零且其前一位为亿位且为零的情况时跨过
else if ( (i < 15) && (i > 11) && (strFen.charAt(lenIntFen - 1) == '0') &&
(strNow.charAt(0) == '零')) {}
//亿位为零且不存在仟万位和十亿以上时去掉上次写入的零
else if ( (i < 15) && (i > 11) && (strFen.charAt(lenIntFen - 1) != '0') &&
(strNow.charAt(0) == '零') && (strNow.charAt(1) == '亿') &&
(strNow.charAt(3) != '仟'))
strBig = strNum + strDW + strBig.substring(1, strBig.length());
//亿位为零且存在仟万位和十亿以上时,在亿仟万间补零
else if ( (i < 15) && (i > 11) && (strFen.charAt(lenIntFen - 1) != '0') &&
(strNow.charAt(0) == '零') && (strNow.charAt(1) == '亿') &&
(strNow.charAt(3) == '仟'))
strBig = strNum + strDW + "亿零" + strBig.substring(2, strBig.length());
else
strBig = strNum + strDW + strBig;
strFen = strFen.substring(0, lenIntFen - 1);
lenIntFen--;
}
return strBig;
}
catch (Exception e) {
return "";
}
}

public static void main(String[] args){
System.out.println(ShuceUtils.TranslateMoneyToChn(123450000));
}
}

JAVA将数字转表示成相应的钱比如说 数字123450000 就需要表示成1亿2千3百4十5万 方法怎么写2楼的朋友,如果是12345.00的时候,显示的是1万2千3百4拾5元0角0分 在java中数字的平方怎样表示 数字逻辑帮忙做下题谢谢1、将下列十进制数转换成相应的二进制数(5.3125) =( )2 2、将下列有符号的十进制数转换成相应的二进制数真值、原码、反码和补码(+59) =( )真值 = ( )原 将十进制数389表示为四进制数字是 import java.util.Date表示什么意思,java里的. java中如何实现一个三位数的个位,十位,百位数分别表示出来 电压表是由一个定值电阻和一个电流计串联组成的,电流表则是并联成的,最后将原表示数修改成相应电压电流值这句话是什么意思 JAVA如何把数字转换成英文字母?例如 1,2,3 转成one,two.three,要写好的程序且判断这个数是奇数还是偶数 java 数 n的阶乘, 阶乘, 公式 为 n!=n*(n-1)(n-2)…*2 * 1 .求 数字 6的阶乘 的阶乘 .java编程 数字A所表示的数是多少? 0b1010_1010_1010表示多少?在JAVA SE7之后,0b1010_1010_1010表示多少?这个数是怎么算的? 将下列数字转换成相应数制的数字(57.625)D=( )B=( )H(1010111001)B=( )O=( )H(101011.11011)B=( )O=( )H 用JAVA语言编写——输入一个整数,将这个数分成独立的数字,并分开显示.例如输入6981,则显示1空格9空格8空输入一个整数,将这个数分成独立的数字,并分开显示.例如输入6981,则显示1空格9空格8 从1-99999找出能开方而且有2个数字相同的数 比如144Java 用JAVA写一个将华氏温度转换成摄氏温度的程序程序的输入是一个整数,表示华氏温度.输出对应的摄氏温度,也是一个整数.提示,为了把计算结果的浮点数转换成整数,需要使用下面的表达式:(in 在右面的算式中,不同的汉字表示不同的数字相应的汉字表示相同的数字.如果巧+解+数+字+谜=30,那么,数字谜所代表的三位数是( ).谜字谜数字谜解数字谜+赛解数字谜——————巧解数字谜 74LS00,74LS08等里的数字表示的含义有没有规律?比如说某个数字表示与门,某个数字表示是几输入的.求大神 数独答题规则:按照“ABCDE”字母相应位置,回复正确 的数字即可.