金额数字转换成中文写法
import java.math.BigDecimal;
/**
* <p>
* Title: 金额数字转换成中文写法
* </p>
* <p>
* Description: 金额数字转换成中文写法
* </p>
*/
public class ChineseCapital {
static String[] hzUnit = { "分", "角", "元", "拾", "佰", "仟", "万", "拾", "佰",
"仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟" };
static String[] hzNum = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
/***************************************************************************
* 金额转大写(后面加整)
*
* @param Num
* @return
*/
public static String toChineseCapitalMoney(BigDecimal Num) {
Num = Num.multiply(new BigDecimal("100"));
Num=Num.setScale(2);
// Num.movePointRight(2);
String lwCase = Num.toString();
int nPointPos = lwCase.indexOf('.');
if (nPointPos == -1)
nPointPos = lwCase.length();
lwCase = lwCase.substring(0, nPointPos);
lwCase = lwCase.trim();
int nLen = lwCase.length();
int iAddZero = 0;
String szChMoney = "";
String strDigital = "";
int nDigital = 0;
if (nLen > 15 || nLen == 0 || Num.doubleValue() < 0)
return ""; // 数据错误返回
for (int i = 0; i < nLen; i++) {
strDigital = lwCase.substring(i, i + 1);
nDigital = new Integer(strDigital).intValue();
if (nDigital == 0) {
iAddZero++;
} else {
if (iAddZero > 0) {
szChMoney += "零";
}
szChMoney += hzNum[nDigital];
iAddZero = 0;
}
if (nDigital != 0 || nLen - i == 3 || nLen - i == 11
|| ((nLen - i + 1) % 8 == 0 && iAddZero < 4)) // 该位不为0||元位||亿位||万位
szChMoney += hzUnit[nLen - i - 1];
}
if (lwCase.endsWith("0"))
szChMoney += "整";
// if(szNum.Right(2)==_T("00")) szChMoney+=_T("整");
return szChMoney;
}
/***************************************************************************
* 金额转大写(后面不加整)
*
* @param Num
* @return
*/
public static String toChineseCapitalMoney1(BigDecimal Num) {
Num = Num.multiply(new BigDecimal("100"));
Num=Num.setScale(2);
// Num.movePointRight(2);
String lwCase = Num.toString();
int nPointPos = lwCase.indexOf('.');
if (nPointPos == -1)
nPointPos = lwCase.length();
lwCase = lwCase.substring(0, nPointPos);
lwCase = lwCase.trim();
int nLen = lwCase.length();
int iAddZero = 0;
String szChMoney = "";
String strDigital = "";
int nDigital = 0;
if (nLen > 15 || nLen == 0 || Num.doubleValue() < 0)
return ""; // 数据错误返回
for (int i = 0; i < nLen; i++) {
strDigital = lwCase.substring(i, i + 1);
nDigital = new Integer(strDigital).intValue();
if (nDigital == 0) {
iAddZero++;
} else {
if (iAddZero > 0) {
szChMoney += "零";
}
szChMoney += hzNum[nDigital];
iAddZero = 0;
}
if (nDigital != 0 || nLen - i == 3 || nLen - i == 11
|| ((nLen - i + 1) % 8 == 0 && iAddZero < 4)) // 该位不为0||元位||亿位||万位
szChMoney += hzUnit[nLen - i - 1];
}
return szChMoney;
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(ChineseCapital
.toChineseCapitalMoney1(new BigDecimal("2")));//贰元
System.out.println(ChineseCapital.toChineseCapitalMoney(new BigDecimal(
"324129.21")));//叁拾贰万肆仟壹佰贰拾玖元贰角壹分
}
}
金额数字转换成中文写法相关推荐
- C语言-如何将用户输入的金额数字转换成中文大写?
实战: 如何将用户输入的金额数字转换成中文大写? #include <stdio.h>int main() {// 输入金额转换成大写int money; // 输入数字int money ...
- 将数字转换成中文金额的大写形式
package com.unteck.fms.web.businessdata.controller; import org.springframework.beans.factory.annotat ...
- 将数字转换成中文大写的算法
//名称:ConvertSignCap //参数:number //返回:CapNumber //描述:将传入的单个数字转换成中文大写形式 //创建人:刘权 2004-11-16 ...
- 货币数字转换成中文大写的函数
这个函数与以前其他网友提供的结构大不相同, 是一个从高位到低位的算法, 更加符合语言习惯. //---------------------------------------------------- ...
- php数字转英文,PHP金额数字转换成英文
PHP金额数字转换成英文 $numTable[40]="FORTY "; $numTable[50]="FIFTY "; $numTable[60]=" ...
- 中文格式_财务必会Excel技巧,将数字转换成中文的5种方式
你还在纠结如何把数字转换成中文大小写吗?下面和大家一起来学习把数字转换成中文的5种方法. 方式一:NUMBERSTRING函数 语法=NUMBERSTRING(数值,选项) 数值:被转换为中文字符串的 ...
- js将数字转换成中文大写
//完成将 toChineseNum, 可以将数字转换成中文大写的表示,处理到万级别,例如 toChineseNum(12345),返回 一万二千三百四十五.const toChinesNum = ( ...
- JavaScript:将输入的一串数字转换成中文大写,最高可写12位(千亿)
将输入的一串数字转换成中文大写,最高可写12位(千亿) 例:输入:10000,输出:壹万 输入:10010,输出:壹万零壹拾 源码: function toChineseBig(num) {// 将接 ...
- python数字转换成中文大写
python数字转换成中文大写 代码 #-*- coding:utf-8 -*- count_map = {1:1, 2:10, 3:100, 4:1000, 5:10000} #用来统计传入数值的级 ...
最新文章
- linux下安装redmine1.2.1全记录
- create_softLink.sh
- linux防火墙为空文件夹,如何记录Linux IPTables防火墙丢弃的数据包到日志文件-linux防火墙设置...
- php mysql odbc_使用PHP和MySQL专用接口以及ODBC接口
- 贝叶斯集锦:贝叶斯统计基础
- easypoi 表头数据导入_小窗通知丨关于金关二期加工贸易导入接口更新的通知
- signature=e7a4f21fa0bd38abc7e1a2451a8b7b26,进阶作业.ipynb
- 操作系统 | 内存文件映射 —— 文件到内存的映射
- doapk+java环境_JD-GUI使用方法JD-GUIjava反编译工具下载(支持X64位的系统) v1.5 最新版 - java反编译工具中文下载_数码资源网...
- arcgis重心迁移分析_ArcGIS支持下三峡库区适度人口重心迁移研究
- 网络上的计算机找不到打印机,网络打印机找不到,详细教您网络打印机找不到怎么办...
- PKG安装包的管理与文件格式分析
- 运营商精准大数据——主动出击 精准获客_客户_实时数据
- android+xposed插件,初探Xposed 插件开发
- 【VS Nuget包数据源无效】
- Metasploit后门渗透Linux系统以及跨平台后门生成
- 如何在高压系统中实现电源和信号线的电气隔离
- UnityShader学习之路(01) 漫反射
- SV中program module
- day6邮件自动发送