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")));//叁拾贰万肆仟壹佰贰拾玖元贰角壹分
}
}

金额数字转换成中文写法相关推荐

  1. C语言-如何将用户输入的金额数字转换成中文大写?

    实战: 如何将用户输入的金额数字转换成中文大写? #include <stdio.h>int main() {// 输入金额转换成大写int money; // 输入数字int money ...

  2. 将数字转换成中文金额的大写形式

    package com.unteck.fms.web.businessdata.controller; import org.springframework.beans.factory.annotat ...

  3. 将数字转换成中文大写的算法

    //名称:ConvertSignCap   //参数:number   //返回:CapNumber   //描述:将传入的单个数字转换成中文大写形式   //创建人:刘权 2004-11-16    ...

  4. 货币数字转换成中文大写的函数

    这个函数与以前其他网友提供的结构大不相同, 是一个从高位到低位的算法, 更加符合语言习惯. //---------------------------------------------------- ...

  5. php数字转英文,PHP金额数字转换成英文

    PHP金额数字转换成英文 $numTable[40]="FORTY "; $numTable[50]="FIFTY "; $numTable[60]=" ...

  6. 中文格式_财务必会Excel技巧,将数字转换成中文的5种方式

    你还在纠结如何把数字转换成中文大小写吗?下面和大家一起来学习把数字转换成中文的5种方法. 方式一:NUMBERSTRING函数 语法=NUMBERSTRING(数值,选项) 数值:被转换为中文字符串的 ...

  7. js将数字转换成中文大写

    //完成将 toChineseNum, 可以将数字转换成中文大写的表示,处理到万级别,例如 toChineseNum(12345),返回 一万二千三百四十五.const toChinesNum = ( ...

  8. JavaScript:将输入的一串数字转换成中文大写,最高可写12位(千亿)

    将输入的一串数字转换成中文大写,最高可写12位(千亿) 例:输入:10000,输出:壹万 输入:10010,输出:壹万零壹拾 源码: function toChineseBig(num) {// 将接 ...

  9. python数字转换成中文大写

    python数字转换成中文大写 代码 #-*- coding:utf-8 -*- count_map = {1:1, 2:10, 3:100, 4:1000, 5:10000} #用来统计传入数值的级 ...

最新文章

  1. linux下安装redmine1.2.1全记录
  2. create_softLink.sh
  3. linux防火墙为空文件夹,如何记录Linux IPTables防火墙丢弃的数据包到日志文件-linux防火墙设置...
  4. php mysql odbc_使用PHP和MySQL专用接口以及ODBC接口
  5. 贝叶斯集锦:贝叶斯统计基础
  6. easypoi 表头数据导入_小窗通知丨关于金关二期加工贸易导入接口更新的通知
  7. signature=e7a4f21fa0bd38abc7e1a2451a8b7b26,进阶作业.ipynb
  8. 操作系统 | 内存文件映射 —— 文件到内存的映射
  9. doapk+java环境_JD-GUI使用方法JD-GUIjava反编译工具下载(支持X64位的系统) v1.5 最新版 - java反编译工具中文下载_数码资源网...
  10. arcgis重心迁移分析_ArcGIS支持下三峡库区适度人口重心迁移研究
  11. 网络上的计算机找不到打印机,网络打印机找不到,详细教您网络打印机找不到怎么办...
  12. PKG安装包的管理与文件格式分析
  13. 运营商精准大数据——主动出击 精准获客_客户_实时数据
  14. android+xposed插件,初探Xposed 插件开发
  15. 【VS Nuget包数据源无效】
  16. Metasploit后门渗透Linux系统以及跨平台后门生成
  17. 如何在高压系统中实现电源和信号线的电气隔离
  18. UnityShader学习之路(01) 漫反射
  19. SV中program module
  20. day6邮件自动发送

热门文章

  1. Node npm升级
  2. pycharm不用下载汉化包修改语言为中文
  3. js中slice,SubString和SubStr的区别
  4. Java正则表达式匹配方括号
  5. zys高性能服务框架
  6. 吉利睿蓝9海岸线试驾暨公益之旅在津收官
  7. 怎么把图片变漫画效果呢?这个小妙招轻松完成
  8. linux glance命令,glance的用法
  9. Hadoop纠删码算法启用ISA-L加速库
  10. 分子动力学论文--算法和参数设置1