Java數字轉換貨幣
1. java實現人民幣大寫換數字
准備一個數組保存中文數字大寫
准備一個數組保存中文單位大小(「億」 「萬」 「千」 「百」 「十」 「圓整」) 注意要留一個沒有單位的
把數字當成字元串,從右到左讀
每次讀 4個數字,從最右一個部位零的數字開始讀如果一直為零則跳過當前4位,否則輸出 數字+單位1 +單位2 0100 則輸出 零 壹 佰 圓整,中間如果出現0, 輸出零
再次讀 4位後 單位2 變為 萬
0100 則輸出 零 壹 佰 萬
即0100 0100 輸出
零 壹 佰 萬 零 壹 佰 圓整
以此類推
1 0100 0100 輸出
壹 億 零 壹 佰 萬 零 壹 佰 圓整
1 0010 0100
壹 億 零 壹 拾 萬 零 壹 佰 圓整
2. 在java里,如何將double類型的數字轉換成貨幣那種形式,數字是用逗號分開的那種
Format fm1=new DecimalFormat("#,###.00");
double num1=12345.678;
fm1.format(num1);
可以自己在程序里試試哈。
3. 用java script寫貨幣轉換器
private static String getDate(){
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
String dateStr = "" + year + "-" + month + "-" + day;
return dateStr;
}
4. Java 將數字格式化為貨幣字元竄。。。下面這個程序應該怎麼改!求高手!!
這里不對:Number number=new Number(System.in);
Number是一個抽象類,不能被實例化的 。
還有,就沒有NumberFormat.FULL這個屬性
5. [JAVA]求一個將數字字元串轉換成人民幣讀法的方法();
上午也看到有人問這個,不知道和Lz是不是同一個人~
我直接復制好了,那邊的那個是我寫的,要是有漏洞還希望可以積極指出,我會盡快完善:
package com.ufotable.test;
import java.math.BigDecimal;
public class Test8 {
public enum RMB{
角,分,元,十,百,千,萬W,十萬,百萬,千萬,億Y,十億,百億,千億,萬W億,十萬億,百萬億,千萬億,兆Z,十兆,百兆,千兆,萬W兆,十萬兆,百萬兆,千萬兆,億Y兆
} public enum NUM{
零,壹,貳,叄,肆,伍,陸,柒,玐,玖
}
static String read(Integer rmb){
return read(rmb.toString());
}
static String read(double rmb){
return read(new BigDecimal(rmb).setScale(2, BigDecimal.ROUND_HALF_UP).toString());
}
static String read(Long rmb){
return read(rmb.toString());
}
static String read(String rmb){
String str1=rmb.replaceAll("\\.\\d*", ""),
str2=rmb.replaceAll("[-]|\\d+\\.", ""),
str3="";
if(rmb.charAt(0)=='-'){str1=str1.substring(1);str3="負";}
int i = 0;
while(i<str1.length()){
int j = str1.length()-i+1;
int c=(str1.charAt(i++)-'0')%9;
str3+=NUM.values()[c].name()+
RMB.values()[j];
}
int j=0;
while(j<str2.length()&&j<2){
int c=(str2.charAt(j++)-'0')%9;
str3+=NUM.values()[c].name()+RMB.values()[j-1];
}
str3=str3.replaceAll("萬", "").replaceAll("億", "").replaceAll("兆", "").
replaceAll("零{1}[兆,億,萬,千,百,十,角]{1}", "零").
replaceAll("零+", "零").
replaceAll("W", "萬").
replaceAll("Y", "億").
replaceAll("Z", "兆").
replaceAll("零億", "億").
replaceAll("零萬", "萬").
replaceAll("零兆", "兆").
replaceAll("零元|元零", "元").
replaceAll("零分|元分", "元").
replaceAll("角元", "角");
return str3;
}
public static void main(String[] args) {
System.out.println(read(2411004444500203.405));
}
}
輸出結果:
貳千肆百壹十壹萬零肆十肆億肆千肆百伍十萬零貳百零叄元伍角
6. 用java將浮點數轉換成人民幣讀法字元串
通過小數點分組,轉換成字元串,逐位比較准換數值(前提先將大寫數字轉換好)
7. java string.format 如何轉換人民幣符號¥
一般用Format的子類來實現這個功能的:DecimalFormat
DecimalFormat df=new DecimalFormat("###,###.##¥");
//#表示數字。這個模式代表 整數部分每三位會有一個,隔開 小數部分四捨五入為2位。
//¥的位置可以任意更改
System.out.println(df.format(1231.12));
8. 求用Java編寫一程序,實現貨幣的大小寫之間的轉換。
import java.util.Scanner;
public class Change {
public static void main(String agrs[]) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入金額:");
System.out.println(digitUppercase(sc.nextDouble()));
}
public static String digitUppercase(double n){
String fraction[] = {"角", "分","毫","厘"};
String digit[] = { "零", "壹", "貳", "叄", "肆", "伍", "陸", "柒", "捌", "玖"};
String unit[][] = {{"元", "萬", "億"}, {"", "拾", "佰", "仟"}};
String head = n < 0? "負": "";
n = Math.abs(n);
String s = "";
for(int i = 0; i < fraction.length; i++) {
s += (digit[(int)(Math.floor(n * 10* Math.pow(10, i)) % 10)] + fraction[i]).replaceAll("(零.)+", "");
}
if(s.length()<1){
s = "整";
}
int integerPart = (int)Math.floor(n);
for(int i = 0; i < unit[0].length && integerPart > 0; i++) {
String p ="";
for(int j = 0; j < unit[1].length && n > 0; j++) {
p = digit[integerPart%10]+unit[1][j] + p;
integerPart = integerPart/10;
}
s = p.replaceAll("(零.)*零$", "").replaceAll("^$", "零") + unit[0][i] + s;
}
return head + s.replaceAll("(零.)*零元", "元").replaceFirst("(零.)+", "").replaceAll("(零.)+", "零").replaceAll("^整$", "零元整");
}
}
9. java 阿拉伯數字錢幣轉換中文輸入小問題。
自己定義一個類吧 數字和轉換後的都放著