java實(shí)現(xiàn)浮點(diǎn)數(shù)轉(zhuǎn)人民幣的小例子
更新時(shí)間:2013年03月30日 09:39:09 作者:
java實(shí)現(xiàn)浮點(diǎn)數(shù)轉(zhuǎn)人民幣的小例子,需要的朋友可以參考一下
復(fù)制代碼 代碼如下:
import java.util.ArrayList;
import java.util.List;
public class RMBConverter2 implements IRMBConverter {
private static final String [] RMB_NUMBER ={"零","壹","貳","叁","肆","伍","陸","柒","捌","玖"};
private static final String [] RMB_ATTR = {"元","十","佰","仟","萬","十","百","仟","億","十","佰","仟","萬","十","佰","仟"};
private static final String[] RMB_FEN = {"分","角"};
@Override
public String change2RMB(double counts) {
StringBuffer rsBuf = new StringBuffer();
if (counts == 0L) {
return "零";
}
if (counts < 0)
rsBuf.append("負(fù)");
String zheng = strConverse(String.valueOf((long)counts));
String xiao = strConverse(String.valueOf(Math.round((counts - (long)counts)*100)));
char [] zhengArray = zheng.toCharArray();
char [] xiaoArray = xiao.toCharArray();
int zLength = zhengArray.length;
int xLength = xiaoArray.length;
List<String> zhengList = new ArrayList<String>();
for(int i =0; i< zLength; i++) {
int value = Integer.parseInt(""+zhengArray[i]);
if (value == 0 && (i != 4) && (i != 8) && i != 0) {
zhengList.add(RMB_NUMBER[value]);
}else {
zhengList.add(RMB_NUMBER[value]+
RMB_ATTR[i]);
}
}
for(int i = zhengList.size()-1; i>=0; i--) {
rsBuf.append(zhengList.get(i));
}
for(int i =0; i<xLength ;i++) {
int value = Integer.parseInt(""+xiaoArray[i]);
if (value > 0 ) {
rsBuf.append(RMB_NUMBER[value])
.append(RMB_FEN[xLength-i-1]);
}
}
String rs = rsBuf.toString();
rs = rs.replaceAll("零+", "零");
rs = rs.replaceAll("零元", "元");
rs = rs.replaceAll("零萬", "萬");
rs = rs.replaceAll("零億", "億");
rs = rs.replaceAll("億萬", "億");
return rs;
}
private String strConverse(String str) {
StringBuffer rs = new StringBuffer();
char [] strArray = str.toCharArray();
for(int i = str.length()-1; i>=0; i--) {
rs.append(strArray[i]);
}
return rs.toString();
}
public static void main(String args []) {
RMBConverter2 c2 = new RMBConverter2();
System.out.println(c2.change2RMB(2001004.10));
System.out.println(c2.change2RMB(2000000.10));
System.out.println(c2.change2RMB(0L));
System.out.println(c2.change2RMB(1121000010000000L));
}
}
相關(guān)文章
Java模擬有序鏈表數(shù)據(jù)結(jié)構(gòu)的示例
這篇文章主要介紹了Java模擬有序鏈表數(shù)據(jù)結(jié)構(gòu)的示例,包括一個(gè)反序的單鏈表結(jié)構(gòu)的例子,需要的朋友可以參考下2016-04-04springboot集成es插入和查詢的簡(jiǎn)單使用示例詳解
這篇文章主要介紹了springboot集成es 插入和查詢的簡(jiǎn)單使用,本文分步驟結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08Java設(shè)計(jì)模式之中介者模式(Mediator Pattern)簡(jiǎn)介
這篇文章主要介紹了Java設(shè)計(jì)模式之中介者模式(Mediator Pattern),需要的朋友可以參考下2014-07-07IDEA中的yml文件與properties互相轉(zhuǎn)換
這篇文章主要介紹了IDEA中的yml文件與properties互相轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10四步輕松搞定java web每天定時(shí)執(zhí)行任務(wù)
本篇文章主要介紹了四步輕松搞定java web每天定時(shí)執(zhí)行任務(wù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01java 中HttpClient傳輸xml字符串實(shí)例詳解
這篇文章主要介紹了java 中HttpClient傳輸xml字符串實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04Java?CompletableFuture實(shí)現(xiàn)原理分析詳解
CompletableFuture是Java8并發(fā)新特性,本文我們主要來聊一聊CompletableFuture的回調(diào)功能以及異步工作原理是如何實(shí)現(xiàn)的,需要的可以了解一下2022-09-09