java人民币大写_JAVA 数字转人民币大写
在写这个之前,老师出的,把阿拉伯数字转化为人民币大写
因为想的跟老师不一样,被老师BS了下,回到住处就把这个写出来
如果有问题,请提出
package com.joyleft.client;
public class MoneyUtil {
private static final String[] NUMBERS={ "","壹", "贰", "叁", "肆", "伍", "陆",
"柒", "捌", "玖" };
private static final String[] IUNIT = { "元", "拾", "佰", "仟", "万", "拾", "佰",
"仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟" };
private static final String[] DUNIT = { "角", "分" };
private static final String TOTAL="整";
/**
* 转成数组
* @param number
*/
public int[] toArray(String number){
char[]cn=number.toCharArray();
int []num=new int[cn.length];
for(int i=0;i
{
num[i]=Integer.parseInt(String.valueOf(cn[i]));
}
return num;
}
public void toChinese(String number){
String strInt="";
String strFloat="";
String StrNum="";
if(number.indexOf(",")>0)
number=number.replace(",", "");
if(number.indexOf(".")>0){//是否有小数点
strInt=number.substring(0,number.indexOf("."));
strFloat=number.substring(number.indexOf(".")+1);
strFloat=round(strFloat);
if("100".equals(strFloat)){//四舍五入后小数位没有了
StrNum=this.handleInteger(strInt,true);
strFloat="";
}else{
StrNum=this.handleInteger(strInt,false)+handleDecimal(strFloat);
}
}else{
System.out.println(number);
}
System.out.println(StrNum);
}
/**
* 整数部分处理
* @param number
*/
public String handleInteger(String number,boolean b){
String strNum="人民币:";
int[] num=null;
if("0".equals(number)){
return strNum+"";
}
num=toArray(number);
for(int i=0;i
if(b&&i==num.length-1){
num[i]=num[i]+1;
}
if(num[i]!=0){
strNum=strNum+NUMBERS[num[i]]+IUNIT[num.length-i-1];
}else{
if(num.length-i==13)//万亿位为零 加万字
strNum=strNum+NUMBERS[num[i]]+IUNIT[num.length-i-1];
else if(num.length-i==9)//亿位为零 加亿字
strNum=strNum+NUMBERS[num[i]]+IUNIT[num.length-i-1];
else if(num.length-i==5)//万位为零 加万字
strNum=strNum+NUMBERS[num[i]]+IUNIT[num.length-i-1];
else if(num.length-i==1)
strNum=strNum+NUMBERS[num[i]]+IUNIT[num.length-i-1]+TOTAL;
}
}
return strNum;
}
/**
* 小数部分处理
* @param number
*/
public String handleDecimal(String number){
String strNum="";
int[] num=toArray(number);
for(int i=0;i
if(num[i]!=0)
strNum=strNum+NUMBERS[num[i]]+DUNIT[i];
else
strNum=strNum+NUMBERS[num[i]]+TOTAL;
}
return strNum;
}
/**
* 四舍五入 保留两位
* @param num
*/
public String round(String number){
String strNum="0."+number;
float num=Float.parseFloat(strNum);
int reNum=(int)num*1000%10;//取得千分位
int intNum=0;
if(reNum>=5){
num=(num*100+1);
intNum=(int)num;
}else{
intNum=(int)(num*100);
}
strNum=String.valueOf(intNum);
if(strNum.length()==1)
strNum="0"+strNum;
return strNum;
}
/**
* @param args
*/
public static void main(String[] args) {
new MoneyUtil().toChinese("3453845546430.200");
new MoneyUtil().toChinese("0.99");
}
}
结果
人民币:叁万肆仟伍佰叁拾捌亿肆仟伍佰伍拾肆万陆仟肆佰叁拾元整贰角整
人民币:玖角玖分
java人民币大写_JAVA 数字转人民币大写相关推荐
- php人民币函数,PHP数字转人民币大写函数
PHP数字转人民币大写函数2018-04-23 09:59 如果你是一位财务人员,肯定遇到过一个问题,就是遇到一串数字,要将其写成大写的人民币,有时很容易搞错. 那么有没有什么方法可以准确的解决呢? ...
- php 将数字转为大写,将数字小写转为大写 php
将数字小写转为大写,这原来是一个类,我改写为一个函数.修复和增加了其中一些在实际工作中需要的功能.使其更加全面.100%可用. function change_num($num) { $d = arr ...
- 人民币转换:数字转中文大写
考试题目和要点: 中文大写金额数字前应标明"人民币"字样.中文大写金额数字应用壹.贰.叁.肆.伍.陆.柒.捌.玖.拾.佰.仟.万.亿.元.角.分.零.整等字样填写.(30分) 中文 ...
- java数字转为大写_java 数字转大写汉字
packagecom.javens.test;importjava.util.HashMap;importjava.util.Map;/** * *@authorjavens *偶尔网上看到这个题目, ...
- python中将字符变为大写_python3 数字转人民币大写
''' 把一个浮点数分解成整数部分和小数部分字符串 num 需要被分解的浮点数 返回分解出来的整数部分和小数部分. 第一个数组元素是整数部分,第二个数组元素是小数部分 ''' def divide(n ...
- python数字转中文大写_python3 数字转人民币大写
''' 把一个浮点数分解成整数部分和小数部分字符串 num 需要被分解的浮点数 返回分解出来的整数部分和小数部分. 第一个数组元素是整数部分,第二个数组元素是小数部分 ''' def divide(n ...
- java数字转大写 其他报异常_java数字金额转大写
/** * 数字金额大写转换,思想先写个完整的然后将如零拾替换成零 要用到正则表达式 */ public static String digitUppercase(double n) { String ...
- java钱币换算_Java编写钱币转换为大写程序
import java.text.DecimalFormat; public class ChangeMonney { private static final String[] STR_UNIT = ...
- java 格式化位数_java数字如何格式化?
展开全部 import java.text.DecimalFormat; public class Test{ public static void main(String[] args){ doub ...
- Java数字转换为人民币的大写
工具类: import java.math.BigDecimal;/*** 数字转换为人民币的大写*/ public class NumberToCN {/*** 汉语中数字大写*/private s ...
最新文章
- Java项目:在线点餐系统(java+Springboot+Maven+mybatis+Vue+mysql+Redis)
- jQuery中getJSON跨域原理详解
- 一次搞懂所有排序算法(二)
- 利用结构体输入输出员工信息
- 折半查找递归算法_两篇文章带你了解java基础算法之递归和折半查找
- 2015-10-11 Sunday 晴 ARM学习
- [HNOI 2011]卡农
- Leet Code OJ 283. Move Zeroes [Difficulty: Easy]
- 优麒麟 使用samba的windows打印机_优麒麟 19.10 将于本月结束生命周期
- Android开发系列(十二) QQ联系人列表升级版——ListView和ScrollView高阶使用方法...
- Tensorflow 2 Auto-Encoder
- 感应联动不是梦,穿透屏幕“闻”见花香你敢信?
- php提取汉字拼音首字母,php获取汉字拼音首字母的函数(真正可以使用的)
- 02~ 一步一步教你使用 SVN之SVN 的介绍
- Unity中使用Protobuffer探讨
- iOS利用cocoapods 和GitHub组件化序Day1
- Tensor的数据统计
- 多个平台下使用Custom Fonts
- tomcat的server.xml中的Context节配置
- 安卓虚拟键盘_微软双屏Surface Duo上的安卓应用体验:可瞬间变身笔记本电脑
热门文章
- linux网络重设,Linux ADSL拨号上网
- 利用leafcutter做可变剪切(新手向)
- 个人理解设计为何要多用组合,少用继承
- android 签到自定义,Android日历签到,超级简单的实现方式
- (matlab)地震数据频谱分析-频谱图代码
- sqli-labs(50-53)
- Electron构建魔兽世界插件更新安装
- 计算机组成原理补码减法,补码加减法运算(计算机组成原理).ppt
- 网页版html怎么设置合适iPad,html – iPad缩放以适应在内容最少的网页上不起作用...
- 第十一章 ESL-通过事件控制FreeSWITCH