- public class Money {
- private static final String[] NUMBERS = { "零", "壹", "贰", "叁", "肆", "伍", "陆","柒", "捌", "玖" };
- private static final String[] IUNIT = { "元", "拾", "佰", "仟", "万", "拾", "佰","仟", "亿", "拾", "佰", "仟"};//最大到千亿
- private static final String[] DUNIT = { "角", "分"};
- public static String toChinese(String str) {
- String integerStr;// 整数部分数字
- String decimalStr;// 小数部分数字
- if (str.indexOf(".") > 0) {
- integerStr = str.substring(0, str.indexOf(".")); //得到整数部分
- decimalStr = str.substring(str.indexOf(".") + 1);//得到小数部分
- }
- else if (str.indexOf(".") == 0) {
- integerStr = "";
- decimalStr = str.substring(1);
- }
- else {
- integerStr = str;
- decimalStr = "";
- }
- if (!integerStr.equals("")) {
- integerStr = Long.toString(Long.parseLong(integerStr));
- if (integerStr.equals("0")) {
- integerStr = "";
- }
- }
- int[] integers = toArray(integerStr); // 整数部分数字
- boolean isWan = isWan(integerStr);// 设置万单位
- int[] decimals = toArray(decimalStr); // 小数部分数字
- return getChineseInteger(integers, isWan) + getChineseDecimal(decimals);
- }
- // 整数部分和小数部分转换为数组,从高位至低位
- private static int[] toArray(String number) {
- int[] array = new int[number.length()];
- for (int i = 0; i < number.length(); i++) {
- array[i] = Integer.parseInt(number.substring(i, i + 1));
- }
- return array;
- }
- //得到中文金额的整数部分。
- private static String getChineseInteger(int[] integers, boolean isWan) {
- StringBuffer chineseInteger = new StringBuffer("");
- int length = integers.length;
- for (int i = 0; i < length; i++) {
- String key = "";
- if (integers[i] == 0) {
- if ((length - i) == 13)
- key = IUNIT[4];
- else if ((length - i) == 9)
- key = IUNIT[8];
- else if ((length - i) == 5 && isWan)
- key = IUNIT[4];
- else if ((length - i) == 1)
- key = IUNIT[0];
- if ((length - i) > 1 && integers[i + 1] != 0)
- key += NUMBERS[0];
- }
- chineseInteger.append(integers[i] == 0 ? key
- : (NUMBERS[integers[i]] + IUNIT[length - i - 1]));
- }
- return chineseInteger.toString();
- }
- //得到中文金额的小数部分。
- private static String getChineseDecimal(int[] decimals) {
- StringBuffer chineseDecimal = new StringBuffer("");
- for (int i = 0; i < decimals.length; i++) {
- if (i == 2)
- break;
- chineseDecimal.append(decimals[i] == 0 ? ""
- : (NUMBERS[decimals[i]] + DUNIT[i]));
- }
- chineseDecimal.toString();
- if(decimals.length==0)//确定"整"的添加情况
- chineseDecimal.append("整");
- else if(decimals.length==1)
- chineseDecimal.append("整");
- else if(decimals.length==2){
- if(decimals[0]==0&&decimals[1]==0||decimals[0]!=0&&decimals[1]==0)
- chineseDecimal.append("整");
- }
- return chineseDecimal.toString();
- }
- //判断第5位数字的单位"万"是否应加。
- private static boolean isWan(String integerStr) {
- int length = integerStr.length();
- if (length > 4) {
- String subInteger = "";
- if (length > 8) {
- subInteger = integerStr.substring(length - 8, length - 4);
- }
- else {
- subInteger = integerStr.substring(0, length - 4);
- }
- return Integer.parseInt(subInteger) > 0;
- }
- else {
- return false;
- }
- }
- public static void main(String[] args) {
- System.out.println("金额转换(最大到千亿,最小到分)");
- String number = "5.00";
- System.out.println(number + " " + Money.toChinese(number));
- number = "123456789123.1";
- System.out.println(number + " " + Money.toChinese(number));
- number = "0.07";
- System.out.println(number + " " + Money.toChinese(number));
- number = "1.90";
- System.out.println(number + " " + Money.toChinese(number));
- number = "1.00";
- System.out.println(number + " " + Money.toChinese(number));
- }
- }
相关推荐
VC++金额大小写转换实用源码
VC++金额大小写转换实用源码 VC++金额大小写转换实用源码,在数字框中任意输入数字 ,己把它做成了一个CnumToHan类,使用方法在示范程序中。运行程序后,在下边的文本框中会适时转换出对应的中文大小汉字,如上图例,学习VC的可参考一下,这是一个数组与字符结合的综合实例。
第八周 项目二--Time类中的运算符重载
问题及代码: /* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者:吴胜男 *完成日期:2015年04月29日 *版本号:v1.0 * *问题描述:实现Time类中的运算符重载。 *提示1:并不是所有比较运算重载函数都很复杂 //比较运算返回的是比较结果,是bool型的true或fa
Python+Vue计算机毕业设计风电场监控系统的设计与实现7bd6i(程序+LW+源码+部署)
Python3.7.7+Django+Mysql5.7+pip list+HBuilderX(Vscode也行)+Vue+Pychram社区版。2. 前端:vue+css+javascript+jQuery+easyUI+highcharts。2.IDE环境:Python和Python 社区版都可以。Django + Vue +Python+Mysql 等等组成,B/S模式等等。该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。1. 后端:Python、Vue、Django、Mysql。
小写数字转换为中文大写的最完整C#方案
using System;using System.Text.RegularExpressions;namespace bobomousecom.crm{ /// /// Regexlib 的摘要说明。 /// public class Regexlib { public Regexlib() { // // TODO: 在此处添加构造函数逻辑 // } //搜
DySAT+: Enhancing Dynamic Graph Representation Learning with Multi-Head Self-Attention and Temporal-
本文深入探讨了DySAT+模型在动态图表示学习中的创新应用,通过多头时空注意力机制和层级信息融合策略,有效解决了动态图数据中的时间维度信息捕捉和结构演变动态适应问题。该模型在社交网络异常检测和金融交易网络分析等场景中表现出色,显著提升了预测准确率和响应速度。
MATLAB实战:64QAM通信系统仿真全流程解析(附误码率优化技巧)
本文提供了一份完整的64QAM通信系统MATLAB仿真实践指南。从系统架构设计、发射端格雷码映射与脉冲成形,到信道建模、接收端同步与均衡,详细解析了全链路实现流程。文章重点分享了误码率曲线与理论值偏差的排查清单和深度优化技巧,帮助工程师构建工业级精度的仿真模型,解决高阶调制系统仿真的核心难题。
Java 金额转换 阿拉伯数字金额转换成汉字大写金额
Java 金额转换 阿拉伯数字金额转换成汉字大写金额 写的不是很完善,仅供参考!还望各大佬多多指点!下面直接上代码: package demo; import java.math.BigDecimal; import java.util.Scanner; public class MoneyToCN2 { private static final String CNSUM[] = {...
nbiot和2g_浅谈NBIOT
一、什么是NBIOT?1、概念窄带物联网(Narrow Band Internet of Things, NB-IoT),NB-IoT构建于蜂窝网络,只消耗大约180KHz的带宽,使用License频段,可采取带内、保护带或独立载波等三种部署方式,与现有网络共存。可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。2、NBIOT的特点和目标(1)超强覆盖:相对GPRS来...
小写金额转换为大写金额
jsp:useBean指令 创建名为StringUtil的JavaBean类 package com.cn.zj.bean; public class StringUtil { private String money; //转换之前的数字金额 private String submoneyCN[]={"","拾","佰","仟"};
[学习笔记]Esp32 + 4G模块,随身wifi,ppp拨号上网
Esp32S3 + 4G模块制作随身WIFI教程
UE4-(IK)实现人物脚贴合地面解决斜坡上脚无旋转无法贴合地面问题
在斜面上脚陷入模型中,需要设置旋转值对脚的骨骼进行一个旋转。 解决思路:在射线检测中可以获取到检测点的法线方向,根据法线方向来计算出脚应该向哪个方向进行适当的旋转,在斜坡上,人物脚需要旋转的轴为x轴和y轴以便来贴合地面,z轴方向的旋转是不需要进行修改的。 如图所示,我们需要求得水平面与斜坡的夹角用来得出人物在x轴上的脚旋转量,在蓝图中提供反正切函数,反正切 = 锐角的邻边/对边 所以 反正切值(脚x轴值(roll)) = 法线Y轴值/法线Z轴 值。 现在将上图的人物想象成面向屏幕,脚需...
JAVA金额转换
本文仅仅简单介绍了怎么解决转换金额问题。
Matlab:imageDatastore() 高效读取图像数据集的实战技巧
本文详细介绍了Matlab中imageDatastore()函数的高效使用技巧,帮助用户从繁琐的手动读取图像数据集中解放出来。通过核心语法、关键参数(如IncludeSubfolders、LabelSource、ReadSize)的解析,以及数据集分割、打乱等进阶实战操作,指导读者构建稳定、高效的图像数据读取管道,特别适用于大型图像数据集处理和机器学习项目。
【简单易懂】Java字符串应用场景:数字金额转换成大写汉字金额【金额转换】
Java字符串应用场景之一,数字金额转换成大写的汉字金额,常用于数据或转账的显示,防止数字金额过于简单而被篡改
Qt Quick (QML) 老年人健康管理
通过 **Qt SQL** 模块将所有健康数据(用药记录、体检数据等)安全地存储在本地 **SQLite** 数据库中。你想用 **Qt C++** 结合 **Qt Quick** (QML) 来开发一个老年人健康管理软件,主要功能包含 **用药提醒** 和 **健康记录** (使用 `Qt SQL` 存储数据)。* **UI 框架**: Qt Quick (QML) - 用于构建流畅、动态的用户界面。**数据模型类 (models/MedicationReminder.h / .cpp)**
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
将数值金额转换为中文大写金额
/** * 将数值金额转换为中文大写金额 * @param $amount float 金额(支持到分) * @param $type int 补整类型,0:到角补整;1:到元补整 * @return mixed 中文大写金额 */ function convertAmountToCn($amount, $type = 1) { // 判断输出的金额是否为数字或数字字...
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
大写金额转换(报销大写金额转换)
10240大写金额怎么?10240大写金额怎么写 壹萬零贰佰肆拾。 Excel数字小写金额转换汉字大写金额公式的设置方式是什么? 公式如下: =IF(ROUND(A1,2)=0,"",IF(A1=1,TEXT(INT(ROUND(ABS(A1),2)),"[dbnum2]")&"元","")&...
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
小写金额转换成大写金额
/************************************************************************************************** Name : Fun_GetRMB Descr : 大写金额转换 Params : @Num 金额小写 Returns: 转换后大写金额 Examp : SELECT dbo.Fun_GetRMB(123456666666.67) *********************
数字金额转换汉字金额
// 数字金额转换汉字金额 function atoc(numberValue){ var numberValue=new String(Math.round(numberValue*100)); // 数字金额 var chineseValue=""; // 转换后的汉字金额 var String1 = "零壹贰叁肆伍陆柒捌玖"; // 汉字数字 va
小写金额转换为大写金额(vb2010)
'------------------------------------------------------------- '功能:小写金额转换为大写金额 '参数: '返回:大写金额 ' "0":整数位数超过9位 ' "1":小数位数超过2位 ' "零":num为0 '方法:text1.text=num
金额转换java_java金额转换
像商品价格,订单,结算都会涉及到一些金额的问题,为了避免精度丢失通常会做一些处理,常规的系统中金额一般精确到小数点后两位,也就是分;这样数据库在设计的时候金额就直接存储整型数据类型,前端可以将金额X100以分为单位传给后端,后端进行一系列逻辑处理后要以元为单位返回前端直接展示,这时候就可以定义一个简单的处理工具来转换:public class MoneyConvert {//分转换为元,返回str...
将金额数字转换为汉字大写金额
DATA: I_INPUT TYPE BSEG-DMBTR , "金额数字 O_OUTPUT) TYPE STRING. “金额汉字 DATA: V_S00(2) VALUE '零', V_S01(2) VALUE '壹', V_S02(2) VALUE '贰', V_S0
金额转换算法
金额转换算法 在我们日常开发过程中,在和金额相关的业务打交道的时候经常需要把阿拉伯数字金额装换为大写的金额(例如:壹佰圆整)。本人最经也正好也有这个需求,故整理了一个简单的转换算法。 /** * 金额转为大写金额工具类 * * @date: 2020/12/2 09:08 */ public class MoneyChangeUtil { private static final String digit_single = "零壹贰叁肆伍陆柒捌玖"; private stati
vue 小写金额转换为大写金额
vue中小写金额转换为大写金额
金额转换,把金额转换成为汉字大写金额!
namespace BaseSystemFramework{ using System; public class Capitalization { public Capitalization() { } //金额数字(小写)转换成文字(大写) private static string[] shuzi={"
482



被折叠的 条评论
为什么被折叠?



