数字转货币金钱中文大写
第一版
package com.demo;/*** @author Administrator* @date 2018/11/29 22:46*/
public class NumToChinese {private String[] suffixArr = new String[]{"", "拾", "佰", "仟", "万", "拾万", "佰万", "仟万", "亿", "拾亿", "佰亿", "仟亿"};private String[] prefixArr = new String[]{"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};private String operateNum(int num) {String value = String.valueOf(num);StringBuilder result = new StringBuilder();for (int i = 0; i < value.length(); i++) {result.append(prefixArr[(int) value.charAt(i) - 48]);result.append(suffixArr[value.length() - 1 - i]);}return result.toString();}public static void main(String[] args) {System.out.println(new NumToChinese().operateNum(12345));}
}
输出结果
壹万贰仟叁佰肆拾伍
缺点:
1.不支持小数
2.如果末尾为小数,则会出现零
3.如果连续两个零,会出现零零等
第二版
更新功能:1.支持小数的输入2.支持连续两个零的输入3.对小数点后的连续零不做过滤
package com.demo;/*** @author Administrator* @date 2018/11/29 22:46*/
public class NumToChinese {private String[] suffixArr = new String[]{"", "拾", "佰", "仟", "万", "拾万", "佰", "仟", "亿", "拾", "佰", "仟"};private String[] prefixArr = new String[]{"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};private String operateNum(double num) {String value = String.valueOf(num);String prefixValue = value.split("\\.")[0];String suffixValue = value.contains(".") ? value.split("\\.")[1] : "";StringBuilder result = new StringBuilder();//计算小数前后的数字变大写for (int i = 0; i < prefixValue.length(); i++) {result.append(prefixArr[(int) prefixValue.charAt(i) - 48]);result.append(suffixArr[prefixValue.length() - 1 - i]);}result = new StringBuilder(result.toString().replaceAll("零.?零.?", "零"));//计算小数点后的数字变大写for (int i = 0; i < suffixValue.length(); i++) {if (i == 0) {result.append("点");}result.append(prefixArr[(int) suffixValue.charAt(i) - 48]);}return result.toString();}public static void main(String[] args) {System.out.println(new NumToChinese().operateNum(1200345.001));}
}
输出结果
壹佰贰拾万零叁佰肆拾伍点零零壹
缺点:1.对于两个以上的零则还无法过滤2.double如果数字过大,会自动转为科学计数法,造成下标溢出
第三版
更新功能:1.支持多个零的过滤2.Java中输入数字会造成精度丢失,因此采用输入前缀与后缀进行判别
package com.demo;import java.math.BigDecimal;/*** @author Administrator* @date 2018/11/29 22:46*/
public class NumToChinese {private String[] suffixArr = new String[]{"", "拾", "佰", "仟", "万", "拾万", "佰", "仟", "亿", "拾", "佰", "仟"};private String[] prefixArr = new String[]{"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};private String operateNum(long prefix, long suffix) {String prefixValue = String.valueOf(prefix);String suffixValue = String.valueOf(suffix);String result = "";//计算小数前后的数字变大写for (int i = 0; i < prefixValue.length(); i++) {result += prefixArr[(int) prefixValue.charAt(i) - 48];result += suffixArr[prefixValue.length() - 1 - i];}result = result.replaceAll("零.?零.?(零.?)*", "零");//计算小数点后的数字变大写for (int i = 0; i < suffixValue.length(); i++) {if (i == 0) {result += "点";}result += prefixArr[(int) suffixValue.charAt(i) - 48];}return result;}public static void main(String[] args) {System.out.println(new NumToChinese().operateNum(120000045,12345));}
}
数字转货币金钱中文大写相关推荐
- Java 将数字金额转成中文大写
一个 Java 将数字金额转成中文大写的工具类,还不是很完善. import java.util.regex.Matcher; import java.util.regex.Pattern;publi ...
- 把数字金额转换成中文大写数字
//把数字金额转换成中文大写数字 function changeNumMoneyToChinese(money) { var cnNums = new Array("零", &qu ...
- url 转换中文_数字快速转换成中文大写,我有妙招
昨天给大家介绍第二种普通数字转中文大写的方法:NumberString函数法.这种方法和第一种单元格格式法一样存在一个缺陷就是只能对正整数进行转换,所以它不能直接用于平时的财务工作中,不过没关系,既然 ...
- 如何把数字金额转换成中文大写
问题:要求把万亿级别内的浮点数转换成中文大写,例如把数字1112221000060.254400转换成:壹万壹仟壹佰贰拾贰亿贰仟壹佰万零陆拾元零贰角伍分 分析:关键是先把double类型转换成char ...
- jq 数字转中文数字_阿拉伯数字 转换 中文大写
阿拉伯数字 转换 中文大写 class ToChineseNumber { private $money = ""; private $cnynums = array(" ...
- EXCEL表中原来常规的数字自动转换成中文大写
解决办法: 首先,打开有问题的Excel文件,选中任意一单元格,鼠标右键单击,选择设置单元格格式: 依次选择数字-自定义,在类型中靠下面找到如图中前缀为[DBNum2][$-804]G/通用格式 的类 ...
- php数字转换百千万,PHP数字金额转换成中文大写显示
整个功能其实不难,只是还算挺实用,所以记一下哈,其他编程语言转换一下也是能可以的! 思路:把传过来的金额转换成整数和小数两部分,再对其分别进行转换处理 代码附上: function moneyToSt ...
- php显示大写金额,PHP数字金额转换成中文大写显示
整个功能其实不难,只是还算挺实用,所以记一下哈,其他编程语言转换一下也是能可以的! 思路:把传过来的金额转换成整数和小数两部分,再对其分别进行转换处理 代码附上: function moneyToSt ...
- php 把数字变成大写数字,PHP数字金额转换成中文大写显示
整个功能其实不难,只是还算挺实用,所以记一下哈,其他编程语言转换一下也是能可以的! 思路:把传过来的金额转换成整数和小数两部分,再对其分别进行转换处理 代码附上: function moneyToSt ...
最新文章
- 【独家】深度学习论文阅读路线图
- python编程字典100例_python中字典(Dictionary)用法实例详解
- Istio 知多少 | 下一代微服务的守护者
- 竞赛奇葩队名,学编程的人都是隐藏的段子手 | 今日最佳
- select选中的值_selenium下拉框处理(select)
- MySQL查询select语句详解
- 浪潮商用机器与腾讯TDSQL完成互认证 共同拓展Power行业生态
- 纯CSS实现table表头固定(自创备忘)
- 电脑怎么分盘win10_电脑时间不对怎么办?Win10电脑时间总是不对的解决方法_电脑故障...
- 网易家居专访柯拉尼陶晓松:有所为 有所不为 争创领军品牌
- C语言小案例_OA大典案例摘录【第1374篇】| 异常色块 规则 合集 | 爱普生喷墨打印机...
- 单片机 c语言 可控硅,以单片机控制为核心的晶闸管触发装置简单设计方案
- 计算机程序试题答案,历年计算机软考程序设计模拟试题及答案
- 热核特征(heat kernel signature,HKS)简单解释(附可运行代码)
- 请尝试将 `lib` 编译器选项更改为 es2015 或更高版本
- win7计算机网络机组用户名,win7连接局域网时的用户名及网络密码是什么?
- 用js	在页面上,设置多个按钮,点击当前按钮时,当前按钮文字变为“哈哈”,其他未点击的按钮文字变为“呜呜”。
- HashMap面试题,看这一篇就够了!
- 订餐系统jsp模板_基于jsp的订餐系统-JavaEE实现订餐系统 - java项目源码
- hook ZwQuerySystemInformation 隐藏进程
热门文章
- 服务器托管达人谈各地机房托管经验
- MFC CListCtrl 点击选中整行
- critic法计算_强化学习(Reinforcement learning)中Actor-Critic算法该如何深入理解?...
- vue集成腾讯地图的地图选点组件
- 师者,传道授业解惑者也:看现在的培训机构和毕业生就业状况
- 8-1 学生基本信息录入界面 (100 分)
- 员工休息时间被领导安排工作直接回怼,网友看后:大早上极度舒适
- 为什么人人都想做电商,网络商城的优势你了解多少?
- android应用开发大赛,喜讯:我院首届“Android应用开发大赛”圆满落幕
- ETC1压缩纹理图片格式