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将数字转换为大写汉字人民币
小写数字转换大写人民币符合财务规定,这只是个DLL文件,你可以调用,运行结果为:输入 1000 或者 1000.00它将转换为 壹仟零佰零拾零元零角零分下面给出这个DLL的接口,声明部份function DatoFB(DX: string):string ;...
MFC制作的人民币小写金额转化大写金额,方便出差回来时报账填写账单大写RMB使用,欢迎下载
数字到人民币大写转换程序(java)支持负数,解决零零,。
在做商业领域中,开发票、支票等与金钱相关的项目时通常会遇到要求把数字转换成中文大写。诸如“壹拾圆陆角玖分”。借鉴网友成熟的想法,再加上我周密的思考,最终形成此代码。压缩包中仅包含一个java文件,里面仅有...
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,如果直接转换不了,可以尝试把你传入的参数用.toString()方法转换一下
将数字形式的人民币金额转换成大写形式的人民币金额。。。
*String Int $num 要转换的小写数字或小写字符串 *return 大写字母 *小数位为两位 **/ function num_to_rmb($num){ $c1 = "零壹贰叁肆伍陆柒捌玖"; $c2 = "分角元拾佰仟万拾佰仟亿"; //精确到分后面就不要了,...
本篇文章主要是对使用JS实现将人民币金额转换为大写的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
* 将double形式的字符串(有两位小数或无小数)转换成人民币的大写格式 * @param doubleStr * @return String * @throws Exception */ public static String doChangeRMB(String doubleStr)throws ...
本程序用于实现人民币对中文的转换,最大可转换人民币9999元。
RMB 大写转小写!找了好久都没有找到的工具类,真的特别好!
实现方法一 applet实现页面是rmb.jsp,此页面是通过applet来实现人民币小写转换成大写的。此页面有三个变量需要在载入classes的时候进行初始化:<applet type=”applet” id=”myApplet” codebase = “.” ...
三、中文大写金额数字前应标明“人民币”字样,大写金额数字应紧接“人民币”字样填写,不得留有空白。大写金额数字前未印“人民币”字样的,应加填“人民币”三字。在票据和结算凭证大写金额栏内不得预印固定的...
5.4.6 RMB——将数字转换为带人民币符号¥的文本 177 5.4.7 NUMBERSTRING——将数值转换为大写汉字 178 5.4.8 NUMBERVALUE——以与区域设置无关的方式将文本转换为数字 179 5.4.9 T——将参数转换为文本 179 ...
【数字转英文】 将选中区域(默认)或已使用区域存储格的金额数字转换成英文格式显示的表达字符串,为三资企业制作客户外汇付款通知书的理想工具。 【文本转EXCEL】 将文本文件按指定的分隔符号分隔一次性导入到...
C#,Chart图形,cmd,Cookie&Session,CSV文件转换,DataTable转实体,DBHelper,DecimalUtility及中文大写数字,DLL,Excel操作类 ,FTP操作类,H5-微信,Html操作类,INI文件读写类,IP辅助类,Javascript,Json,JSON操作,JS操作,...
【数字转英文】 将选中区域(默认)或已使用区域存储格的金额数字转换成英文格式显示的表达字符串,为三资企业制作客户外汇付款通知书的理想工具。 【文本转EXCEL】 将文本文件按指定的分隔符号分隔一次性导入到...
║ 【条件背景】 【插入批注背景】 【读取批注内容】 【数字大写转小写】 【多个休闲动画】 ║ ║ 【条件背景选择】 【插入行数】 【监控单元格修改】 【筛选复制可见】 【关闭所有动画】 ║ ║ 【高级背景】 【注解...