「Java人民数量」java八大基本类型
本篇文章给大家谈谈Java人民数量,以及java八大基本类型对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Java中,怎么将一段浮点数值转换成人民币格式?例如将12004567.866转换成 :壹千贰百万
- 2、到日本干Java软件开发,一年能剩多少人民币啊?
- 3、java:人民币大小写转换:比如比输入123456,要求输出:拾贰万叁仟肆佰伍拾柒,请不要用数组方法
- 4、java 输出应给顾客找零金额的各种面额人民币张数.在主函数中输入商品价格和顾客付款,调用函数得结果.
- 5、用java编写一个程序,可实现人民币,美元,日元,欧元,台币,港币之间的任意转换
Java中,怎么将一段浮点数值转换成人民币格式?例如将12004567.866转换成 :壹千贰百万
直接通过以下接口类方法实现即可:importjava.math.BigDecimal;/***金额工具类**@authorzn**@Date2013-2-1*@Emailzn.share@gmail.com*/publicclassMoneyUtil{privatestaticfinalintDFT_SCALE=2;/**大写数字*/privatestaticfinalString[]NUMBERS={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};/**整数部分的单位*/privatestaticfinalString[]IUNIT={"元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万","拾","佰","仟"};/**小数部分的单位*/privatestaticfinalString[]DUNIT={"角","分","厘"};/***得到大写金额。*/publicstaticStringtoChinese(Stringstr){str=str.replaceAll(",","");//去掉","StringintegerStr;//整数部分数字StringdecimalStr;//小数部分数字//初始化:分离整数部分和小数部分if(str.indexOf(".")0){integerStr=str.substring(0,str.indexOf("."));decimalStr=str.substring(str.indexOf(".")+1);}elseif(str.indexOf(".")==0){integerStr="";decimalStr=str.substring(1);}else{integerStr=str;decimalStr="";}//integerStr去掉首0,不必去掉decimalStr的尾0(超出部分舍去)if(!integerStr.equals("")){integerStr=Long.toString(Long.parseLong(integerStr));if(integerStr.equals("0")){integerStr="";}}//overflow超出处理能力,直接返回if(integerStr.length()IUNIT.length){System.out.println(str+":超出处理能力");returnstr;}int[]integers=toArray(integerStr);//整数部分数字booleanisMust5=isMust5(integerStr);//设置万单位int[]decimals=toArray(decimalStr);//小数部分数字returngetChineseInteger(integers,isMust5)+getChineseDecimal(decimals);}/***整数部分和小数部分转换为数组,从高位至低位*/privatestaticint[]toArray(Stringnumber){int[]array=newint[number.length()];for(inti=0;i1integers[i+1]!=0)key+=NUMBERS[0];}chineseInteger.append(integers[i]==0?key:(NUMBERS[integers[i]]+IUNIT[length-i-1]));}returnchineseInteger.toString();}/***得到中文金额的小数部分。*/privatestaticStringgetChineseDecimal(int[]decimals){StringBufferchineseDecimal=newStringBuffer("");for(inti=0;i4){StringsubInteger="";if(length8){//TODO12-9-17//取得从低位数,第5到第8位的字串subInteger=integerStr.substring(length-8,length-4);}else{subInteger=integerStr.substring(0,length-4);}returnInteger.parseInt(subInteger)0;}else{returnfalse;}}/***BigDecimal相乘,四舍五入保留0位**@parama*@paramb*@returna*b*/publicstaticBigDecimalmutiply(Stringa,Stringb,introundingMode){BigDecimalbd=newBigDecimal(a);returnbd.multiply(newBigDecimal(b)).setScale(DFT_SCALE,roundingMode);}/***BigDecimal相除,四舍五入保留两位**@parama*@paramb*@returna/b*/publicstaticBigDecimaldiv(Stringa,Stringb,introundingMode){BigDecimaldecimal1=newBigDecimal(a);BigDecimaldecimal2=newBigDecimal(b);returndecimal1.divide(decimal2,DFT_SCALE,roundingMode);}/***BigDecimal相加,四舍五入保留两位**@parama*@paramb*@returna+b*/publicstaticBigDecimalsum(Stringa,Stringb,introundingMode){BigDecimaldecimal1=newBigDecimal(a);BigDecimaldecimal2=newBigDecimal(b);//DecimalFormatformat=newDecimalFormat("#0.00");returndecimal1.add(decimal2).setScale(DFT_SCALE,roundingMode);}/***BigDecimal相减,四舍五入保留两位**@parama*@paramb*@returna+b*/publicstaticBigDecimalsub(Stringa,Stringb,introundingMode){BigDecimaldecimal1=newBigDecimal(a);BigDecimaldecimal2=newBigDecimal(b);//DecimalFormatformat=newDecimalFormat("#0.00");returndecimal1.subtract(decimal2).setScale(DFT_SCALE,roundingMode);}/***100.00为10000**@parama*@return*/publicstaticBigDecimalformat(Stringa,introundingMode){returnnewBigDecimal(a).multiply(newBigDecimal(100)).setScale(0,roundingMode);}publicstaticvoidmain(String[]args){Stringnumber="54452";System.out.println(number+""+MoneyUtil.toChinese(number));number="30200";System.out.println(number+""+MoneyUtil.toChinese(number));number="30000.05";System.out.println(number+""+MoneyUtil.toChinese(number));number="30000.00";System.out.println(number+""+MoneyUtil.toChinese(number));}}备注:最后面的main方法是具体的调用。
到日本干Java软件开发,一年能剩多少人民币啊?
好像是20W人民币的样子吧,反正比国内的高。不过那边消费也比较高。
要会日语啥,这个就难住很多很多人了。
java:人民币大小写转换:比如比输入123456,要求输出:拾贰万叁仟肆佰伍拾柒,请不要用数组方法
public class MoneySmallToBig {
转自CSDN的东东
/**
* 人民币大小写转换
*/
//别说这里用数组,这里定义大写的是必须的
public static String[] number = new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖" };
public static String[] units = new String[]{"元","拾","佰","仟"};
public static void change(String smoney){
StringBuffer sb=new StringBuffer();
//小数点的位置
int index=smoney.indexOf(".");
//biggerstr用于存放存有数字和单位的字符
StringBuffer biggerstr=new StringBuffer();
//处理小数部分
biggerstr.append("分");
biggerstr.append(number[Integer.parseInt(smoney.charAt(index+2)+"")]);
biggerstr.append("角");
biggerstr.append(number[Integer.parseInt(smoney.charAt(index+1)+"")]);
//处理整数部分
for(int i=0;iindex;i++){
sb.append(number[Integer.parseInt(smoney.charAt(i)+"")]);
}
sb=sb.reverse();
String insertstr=sb.toString();
for(int i=0;iinsertstr.length();i++){
//插入单位
if(i==0){
biggerstr.append("元");
}
else if((i+4)%4==0 i!=8){
biggerstr.append("万");
}
else if(i%8==0){
biggerstr.append("亿");
}
else
biggerstr.append(units[i%4]);
//插入数字
biggerstr.append(insertstr.charAt(i));
}
//instead_zero字符串用于存放清除零之后的
String instead_zero=biggerstr.reverse().toString();
instead_zero=instead_zero.replaceAll("零分", "零");
instead_zero=instead_zero.replaceAll("零角", "零");
instead_zero=instead_zero.replaceAll("零佰", "零");
instead_zero=instead_zero.replaceAll("零仟", "零");
instead_zero=instead_zero.replaceAll("零拾", "零");
//把相连的零去掉
instead_zero=instead_zero.replaceAll("[零]+","零");
instead_zero=instead_zero.replaceAll("零元", "元");
instead_zero=instead_zero.replaceAll("零万", "万");
instead_zero=instead_zero.replaceAll("零亿", "亿");
//把字符串中的最后一个零去掉
if(instead_zero.charAt(instead_zero.length()-1)=='零'){
instead_zero=instead_zero.substring(0, instead_zero.length()-1);
}
System.out.println(instead_zero);
}
public static void main(String[] args) {
String smoney="1020089090.89";
change(smoney);
}
}
java 输出应给顾客找零金额的各种面额人民币张数.在主函数中输入商品价格和顾客付款,调用函数得结果.
人民币的设计就是按照最大面值最小张数生成的概念设计的。
所以每次你只要用“差/当前可选最大面值”然后递归去算就可以了。
比如差8块、直接8/5 然后余3再 3/2余 1然后1/1余0,递归结束。就可以了。
用java编写一个程序,可实现人民币,美元,日元,欧元,台币,港币之间的任意转换
package Test;
import javax.swing.JOptionPane;
public class Test2 {
public static void main(String[] args) {
int numOf10=0;
int numOf5=0;
int numOf1=0;
int numOf0_5=0;
int numOf0_1=0;
Double money=Double.parseDouble(JOptionPane.showInputDialog("输入money"));
int total=(int)(money*10);
while(total0){
if((total-100)=0){
total-=100;
numOf10++;
}else if((total-50)=0){
total-=50;
numOf5++;
}else if((total-10)=0){
total-=10;
numOf1++;
}else if((total-5)=0){
total-=5;
numOf0_5++;
}else if((total-1)=0){
total-=1;
numOf0_1++;
}
}
if(numOf10!=0){
System.out.println("10元人民币:"+numOf10+"张");
}
if(numOf5!=0){
System.out.println("5元人民币:"+numOf5+"张");
}
if(numOf1!=0){
System.out.println("1元人民币:"+numOf1+"张");
}
if(numOf0_5!=0){
System.out.println("5角人民币:"+numOf0_5+"张");
}
if(numOf0_1!=0){
System.out.println("1角人民币:"+numOf0_1+"张");
}
}
}
Java人民数量的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java八大基本类型、Java人民数量的信息别忘了在本站进行查找喔。