`
bean-woo
  • 浏览: 131684 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

人民币(Rmb)数字转换大写(大写)

阅读更多

 

package com.test;

 

public class RmbConvert {

public String simpleToBig(double money) {

if (money <= 0) {

return "不能为负数";

}

 

String result = "";

 

char[] hunit = { '拾', '佰', '仟' }; // 段内的量度

char[] vunit = { '万', '亿' }; // 段间的量度

char[] digit = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; // 小写对应的大写

 

long longMoney = (long) (money * 100);

String strMoney = String.valueOf(longMoney); // 将小数变成整数,再放入字符串中

 

String head = strMoney.substring(0, strMoney.length() - 2); // 整数部分

String tail = strMoney.substring(strMoney.length() - 2); // 小数部分

 

String prefix = ""; // 存放转换的整数部分

String suffix = ""; // 存放转换的小数部分

 

if (tail.equals("00")) {

suffix += "整";

} else {

char tailChar[] = tail.toCharArray();

suffix += digit[tailChar[0] - '0'] + "角" // 将小数部分表示出来

+ digit[tailChar[1] - '0'] + "分"; // '0' ASCII 为 48,相减得索引号

}

 

char headChar[] = head.toCharArray();

 

/*

* 考虑零的情况,记录0的个数

*/

 

char zero = '0';

byte zeroSize = 0;

 

/*

* 先不考虑有0的情况,有点小复杂,因为有0的地方不能有单位

* 等能实现大概功能时,再来考虑有0的情况

*/

for (int i = 0; i < headChar.length; i++) {

int idx = (headChar.length - i - 1) % 4; // 判断“段内”,"十,佰,千"

// idx=0,表示每4位分段了

int vidx = (headChar.length - i - 1) / 4; // 判断“段间”,“万,亿”

 

if (headChar[i] == '0') { // 考虑0的情况了

zeroSize++;

if (zero == '0') {

zero = digit[0];

} else if (idx == 0 && zeroSize < 4 && vidx > 0) {

prefix += vunit[vidx - 1]; // 当遇到1,1000,1234时, 1千万才能表示出来

zero = '0'; // 当1千万表示出来时,“零”就不需要了,在后来判断zero != 0

}

continue;

}

 

if (zero != '0') { // 没有转成千万时,就将”零“加入

prefix += zero; // 不至于出现很多个”零“

}

 

zeroSize = 0; // 还原成以前的

 

prefix += digit[headChar[i] - '0']; // ‘1’变成‘壹’

 

if (idx > 0) {

prefix += hunit[idx - 1]; // 加上 "十,佰,千"

}

if (idx == 0 && vidx > 0) {

prefix += vunit[vidx - 1]; // 加上 “万,亿”

}

}

 

if (prefix.length() > 0) {

result = prefix + "圆" + suffix;

}

 

return result;

}

 

public static void main(String[] args) {

 

RmbConvert rmb = new RmbConvert();

String cn = rmb.simpleToBig(1234567890.78);

System.out.println(cn);

}

}


分享到:
评论

相关推荐

    JS将数字转换为大写汉字人民币

    JS将数字转换为大写汉字人民币

    小写数字转换大写人民币符合财务规定

    小写数字转换大写人民币符合财务规定,这只是个DLL文件,你可以调用,运行结果为:输入 1000 或者 1000.00它将转换为 壹仟零佰零拾零元零角零分下面给出这个DLL的接口,声明部份function DatoFB(DX: string):string ;...

    人民币金额小写转大写

    MFC制作的人民币小写金额转化大写金额,方便出差回来时报账填写账单大写RMB使用,欢迎下载

    Rmb.rar_人民币 转换 java_人民币大写

    数字到人民币大写转换程序(java)支持负数,解决零零,。

    数字转换成中文大写

    在做商业领域中,开发票、支票等与金钱相关的项目时通常会遇到要求把数字转换成中文大写。诸如“壹拾圆陆角玖分”。借鉴网友成熟的想法,再加上我周密的思考,最终形成此代码。压缩包中仅包含一个java文件,里面仅有...

    Excel中人民币转换为大写

    excle中自动转换为人民币大写: 在B9单元格输入阿拉伯数字,在C9单元格输入如下内容: =IF(B9,,TEXT(INT(B9),"[dbnum2]人民币G/通用格式")&"元"&IF(INT(B9*10)-INT(B9)*10=0,IF(INT(B9)*(INT(B9*100)-INT(B9*10)*...

    人民币大写转换js,精确到角

    人民币大写转换js,如果直接转换不了,可以尝试把你传入的参数用.toString()方法转换一下

    RMB-translation.rar_translation_人民币大写

    将数字形式的人民币金额转换成大写形式的人民币金额。。。

    php阿拉伯数字转中文人民币大写

    *String Int $num 要转换的小写数字或小写字符串 *return 大写字母 *小数位为两位 **/ function num_to_rmb($num){ $c1 = "零壹贰叁肆伍陆柒捌玖"; $c2 = "分角元拾佰仟万拾佰仟亿"; //精确到分后面就不要了,...

    JS实现将人民币金额转换为大写的示例代码

    本篇文章主要是对使用JS实现将人民币金额转换为大写的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

    人民币小写转大写(Java 实现)

    * 将double形式的字符串(有两位小数或无小数)转换成人民币的大写格式 * @param doubleStr * @return String * @throws Exception */ public static String doChangeRMB(String doubleStr)throws ...

    RMB Capital Converter (人民币大写转换工具):RMB Capital Converter-matlab开发

    本程序用于实现人民币对中文的转换,最大可转换人民币9999元。

    RMB 大写转小写!

    RMB 大写转小写!找了好久都没有找到的工具类,真的特别好!

    jsp页面调用applet实现人民币的大小写转换

    实现方法一 applet实现页面是rmb.jsp,此页面是通过applet来实现人民币小写转换成大写的。此页面有三个变量需要在载入classes的时候进行初始化:&lt;applet type=”applet” id=”myApplet” codebase = “.” ...

    大小写金额转换-源码

    三、中文大写金额数字前应标明“人民币”字样,大写金额数字应紧接“人民币”字样填写,不得留有空白。大写金额数字前未印“人民币”字样的,应加填“人民币”三字。在票据和结算凭证大写金额栏内不得预印固定的...

    Excel公式与函数大辞典.宋翔(带书签高清文字版).pdf

    5.4.6 RMB——将数字转换为带人民币符号¥的文本 177 5.4.7 NUMBERSTRING——将数值转换为大写汉字 178 5.4.8 NUMBERVALUE——以与区域设置无关的方式将文本转换为数字 179 5.4.9 T——将参数转换为文本 179 ...

    EXCEL集成工具箱V8.0完整增强版(精简)

    【数字转英文】 将选中区域(默认)或已使用区域存储格的金额数字转换成英文格式显示的表达字符串,为三资企业制作客户外汇付款通知书的理想工具。 【文本转EXCEL】 将文本文件按指定的分隔符号分隔一次性导入到...

    C#常用公共类源码(100多个)可以直接使用.rar

    C#,Chart图形,cmd,Cookie&Session,CSV文件转换,DataTable转实体,DBHelper,DecimalUtility及中文大写数字,DLL,Excel操作类 ,FTP操作类,H5-微信,Html操作类,INI文件读写类,IP辅助类,Javascript,Json,JSON操作,JS操作,...

    EXCEL集成工具箱V6.0

    【数字转英文】 将选中区域(默认)或已使用区域存储格的金额数字转换成英文格式显示的表达字符串,为三资企业制作客户外汇付款通知书的理想工具。 【文本转EXCEL】 将文本文件按指定的分隔符号分隔一次性导入到...

    Excel工具箱教学指导

    ║ 【条件背景】 【插入批注背景】 【读取批注内容】 【数字大写转小写】 【多个休闲动画】 ║ ║ 【条件背景选择】 【插入行数】 【监控单元格修改】 【筛选复制可见】 【关闭所有动画】 ║ ║ 【高级背景】 【注解...

Global site tag (gtag.js) - Google Analytics