`
bean-woo
  • 浏览: 136071 次
  • 性别: 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将数字转换为大写汉字人民币

    mysql函数,将数字金额转成人民币大写

    在MySQL数据库中,有时我们需要将数字金额转换成人民币的大写形式,这在财务报表或会计系统中非常常见。为了实现这一需求,我们可以自定义一个函数或者利用现有的字符串处理函数。以下是一个关于如何在MySQL中实现这...

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

    这个"Rmb.rar_人民币 转换 java_人民币大写"的压缩包就是一个典型的例子,它包含了一个Java程序,用于将数字转换成符合中国金融规范的人民币大写形式。这种转换对于财务报表、发票开具等场景至关重要,因为它们要求...

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

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

    人民币小写金额转大写金额(java版)

    本文将详细介绍一个Java程序,该程序用于将小写的人民币金额转换为大写形式。此转换主要用于财务、会计和其他正式场合,在这些场合中,大写金额是标准且必须的格式。此程序能够处理的金额范围最大支持到“仟万亿”,...

    excel中数字自动转换成人民币大写文字

    一种方法是创建一个自定义VBA(Visual Basic for Applications)函数,通过编写一段VBA代码来实现数字到大写人民币的转换。例如,你可以创建一个名为`RMB`的自定义函数,将数字作为参数输入,返回对应的人民币大写...

    原生JS实现的人民币数字大写转换特效源码.zip

    根据数字转换大写并插入单位 ... } // ... 对小数部分进行转换 ... var decimalCN = ''; if (decimalPart !== '00') { // ... 转换并处理小数部分 ... } // ... 组合整数部分、小数部分及单位 ... var ...

    小写人民币转大写ACCESS函数

    给定的代码实现了一个名为`rmb`的VBA自定义函数,其主要作用是将小写的人民币数值转换为大写汉字表示。例如,输入“12345.67”将返回“壹万贰仟叁佰肆拾伍元陆角柒分”。 #### 函数逻辑分析 1. **变量声明与初始化*...

    人民币金额小写转大写

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

    java中把数字转化为人民币大写形式

    总的来说,将数字转化为人民币大写形式是Java编程中的一个实用技巧,涉及到数字与字符串的转换、位运算以及特殊规则的理解和应用。通过理解和实践这个过程,可以增强对Java字符串操作和逻辑处理的理解。

    数字转换成中文大写

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

    oracle 数字金额转为汉字大写

    在Oracle数据库环境中,有时我们需要将数字金额转换成汉字大写形式,这在财务报表或理财程序中尤为常见,因为汉字大写是财务领域的一种标准表示方式,可以避免因数字混淆而引发的错误。本篇文章将深入探讨如何在...

    excel表格中负数的人民币金额怎么转换成大写.docx

    Excel 中负数的人民币金额转换为大写的公式应用 在财务记账中,经常会遇到负数的金额,而 Excel 的单元格格式设置无法满足要求。本节将提供一个可供负数、正数使用的函数公式来将人民币金额转换为大写。 公式解析 ...

    使用java将人民币金额转换成大写并使用自定义标签显示到页面

    本篇将介绍如何使用Java编程语言将人民币金额转换成大写,并且通过自定义标签库(Tag Library)在网页上显示。首先,我们来看`ChangeNumMoney.java`这个文件,它可能包含了实现金额转换的核心逻辑。 `...

    转换人民币大写金额

    "转换人民币大写金额"是一个常见的需求,尤其是在财务报表、发票开具以及银行交易中,因为大写金额可以防止数字输入错误。本示例中的C#代码提供了一个解决方案,允许开发者将数字金额转换为标准的中文大写格式。 在...

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

    "人民币大写转换js"是一个常见的需求,它涉及到JavaScript编程语言中的字符串处理和数字格式化技术。下面将详细阐述这个主题。 首先,人民币大写转换通常涉及到以下字符:零(0)、壹(1)、贰(2)、叁(3)、肆...

    DX_RMB.rar_人民币_人民币大写

    在描述中提到的"delphi下人民币大写函数",应该是一个能够将小写的人民币金额转换为大写的函数或类库。这个函数可能包含了处理各种数值情况的逻辑,例如零、正数、负数、小数点后的位数等,并且根据中国的会计规则,...

    Excel中人民币转换为大写

    本文主要介绍如何在Excel中将阿拉伯数字表示的人民币金额自动转换成大写形式。该功能在制作财务报表、发票或其他需要大写金额的文档时非常实用。通过使用Excel公式实现自动化处理,可以有效减少人工操作的工作量,并...

    java实现将数字转换成人民币大写

    【Java实现将数字转换成人民币大写】的代码主要涉及了将数字转化为中文大写汉字的逻辑,这对于财务系统和报表生成来说是非常重要的功能。在Java中,这个过程可以通过自定义类来实现,例如创建一个名为`Rmb`的类。...

Global site tag (gtag.js) - Google Analytics