`
- 浏览:
1450544 次
- 性别:
- 来自:
北京
-
import java.math.BigDecimal;


public class ConvertNumber ...{

/** *//** 定义数组存放数字对应的大写 */


private final static String[] STR_NUMBER = ...{ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };


/** *//** 定义数组存放位数的大写 */

private final static String[] STR_MODIFY = ...{ "", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟" };


/** *//**
* 转化整数部分
*
* @param tempString
* @return 返回整数部分
*/

private static String getInteger(String tempString) ...{

/** *//** 用来保存整数部分数字串 */
String strInteger = null;//

/** *//** 记录"."所在位置 */
int intDotPos = tempString.indexOf(".");
int intSignPos = tempString.indexOf("-");
if (intDotPos == -1)
intDotPos = tempString.length();

/** *//** 取出整数部分 */
strInteger = tempString.substring(intSignPos + 1, intDotPos);
strInteger = new StringBuffer(strInteger).reverse().toString();

StringBuffer sbResult = new StringBuffer();

for (int i = 0; i < strInteger.length(); i++) ...{
sbResult.append(STR_MODIFY);
sbResult.append(STR_NUMBER[strInteger.charAt(i) - 48]);
}

sbResult = sbResult.reverse();

replace(sbResult, "零拾", "零");
replace(sbResult, "零佰", "零");
replace(sbResult, "零仟", "零");
replace(sbResult, "零万", "万");
replace(sbResult, "零亿", "亿");

replace(sbResult, "零零", "零");
replace(sbResult, "零零零", "零");

/** *//** 这两句不能颠倒顺序 */
replace(sbResult, "零零零零万", "");
replace(sbResult, "零零零零", "");

/** *//** 这样读起来更习惯. */
replace(sbResult, "壹拾亿", "拾亿");
replace(sbResult, "壹拾万", "拾万");

/** *//** 删除个位上的零 */
if (sbResult.charAt(sbResult.length() - 1) == '零' && sbResult.length() != 1)
sbResult.deleteCharAt(sbResult.length() - 1);


if (strInteger.length() == 2) ...{
replace(sbResult, "壹拾", "拾");
}

/** *//** 将结果反转回来. */
return sbResult.toString();
}


/** *//**
* 转化小数部分 例:输入22.34返回叁肆
*
* @param tempString
* @return
*/

private static String getFraction(String tempString) ...{
String strFraction = null;
int intDotPos = tempString.indexOf(".");

/** *//** 没有点说明没有小数,直接返回 */
if (intDotPos == -1)
return "";
strFraction = tempString.substring(intDotPos + 1);
StringBuffer sbResult = new StringBuffer(strFraction.length());


for (int i = 0; i < strFraction.length(); i++) ...{
sbResult.append(STR_NUMBER[strFraction.charAt(i) - 48]);
}
return sbResult.toString();
}


/** *//**
* 判断传入的字符串中是否有.如果有则返回点
*
* @param tempString
* @return
*/

private static String getDot(String tempString) ...{
return tempString.indexOf(".") != -1 ? "点" : "";
}


/** *//**
* 判断传入的字符串中是否有-如果有则返回负
*
* @param tempString
* @return
*/

private static String getSign(String tempString) ...{
return tempString.indexOf("-") != -1 ? "负" : "";
}


/** *//**
* 将一个数字转化为金额
*
* @param tempNumber 传入一个double的变量
* @return 返一个转换好的字符串
*/

public static String numberToChinese(double tempNumber) ...{
java.text.DecimalFormat df = new java.text.DecimalFormat("#.#########");
String pTemp = String.valueOf(df.format(tempNumber));
StringBuffer sbResult = new StringBuffer(getSign(pTemp) + getInteger(pTemp) + getDot(pTemp) + getFraction(pTemp));
return sbResult.toString();
}

![]()
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
JS将数字转换为大写汉字人民币
人民币数字转换成汉字大写 android Java 运行效率
在编程领域,尤其是在中文编程环境中,有时我们需要将阿拉伯数字转换为汉字大写,这在财务、会计等领域的报表和凭证中尤为常见。易语言作为一款中国本土开发的、以中文编程为特色的编程语言,提供了方便的方式来实现...
Java 实现数字转换人民币中文大写工具是指使用 Java 语言将数字转换为人民币中文大写格式的工具。该工具具有很高的实用价值,特别是在人事业务系统开发中,经常需要将数字转换为大写,以便于报表打印和日常业务处理...
2. 对应转换:将每个数字转换为相应的中文大写,如1对应壹,2对应贰,以此类推。同时,根据位数添加相应的单位,例如12后加“万”。 3. 填充零:如果某一位是0,则写为“零”。例如,3456中“5”的前一位是0,所以...
本文实例为大家分享了python实现人民币大写转换的具体代码,供大家参考,具体内容如下 #!/usr/bin/python # -*- coding:utf-8 -*- # ********* 转换方法介绍 ********* # 将需要转换的数字从右向左,每4位分成一个...
mysql 函数,可以将数字转换为中文大写形式。大写数字是中国特有的数字书写方式,利用与数字同音的汉字取代数字,以防止数目被涂改。 据考证,大写数字最早是由武则天发明,后经朱元璋改进完善。
excel 纯函数 数字转换大写 数字转换财务大写 数字转换中文 数字转换汉字,里面有详细的介绍,非常适合初学者,操作简单方便,易学易用,希望能给您带来帮助。 适合excel2000及以上版本。
1、该dll能将阿拉伯数字转换为汉字数字或者中文大写金额。例如1234567.07可转换为: “一百二十三万四千五百六十七点零七”或“壹佰贰拾叁万肆仟伍佰陆拾柒圆零柒分”。 目前支持正负千亿以内(整数部分不超过12位)...
给定的代码实现了一个名为`rmb`的VBA自定义函数,其主要作用是将小写的人民币数值转换为大写汉字表示。例如,输入“12345.67”将返回“壹万贰仟叁佰肆拾伍元陆角柒分”。 #### 函数逻辑分析 1. **变量声明与初始化*...
标题提到的“人民币数字变大写形式”是一个常见的功能,尤其在财务系统或者银行应用中,它涉及到将阿拉伯数字的金额转换为汉字大写的表示,以确保财务记录的清晰性和准确性。这种转换在财务报表、发票和合同中尤其...
标题 "数字转换为中文大写代码段" 描述了一个编程任务,即把数字转换成中文大写的表示形式。这个过程通常在财务或者会计领域中使用,例如在制作发票或者进行金融交易时,需要将数字金额以中文大写的形式展示,以避免...
在IT行业中,尤其是在编程领域,有时我们需要将数字转化为特定的文本格式,如将数字转换成大写的人民币格式。这在财务软件、报表系统或者任何涉及金融数据展示的应用中非常常见。"转变数字为大写人民币格式"这个话题...
本文将深入探讨如何将数字转换为汉字大写,特别是在VC++环境下使用MFC库实现这一功能。首先,我们来理解标题“数字大小写转换(转换为汉字大写)”所指的知识点。 在会计、财务和其他需要精确表示金额的领域,数字...
在Android开发中,有时我们需要将数字转换为中文或者将金额以大写的格式显示,这在财务应用或一些需要中文表示数字的场景中尤其常见。本文将深入探讨如何在Android环境中实现这一功能,包括数字转中文以及数字金额转...
标题和描述中提到的知识点是关于如何使用JavaScript(简称js)编程语言将阿拉伯数字转换为中文大写形式。这种转换通常在财务相关的软件中很常见,尤其是涉及到金额表述时,为了符合财务规范或增加可读性,需要将数字...
SQL Server 是一个功能强大且广泛应用的关系数据库管理系统,而阿拉伯数字转大写中文是一个常见的需求,例如,在财务报表、发票printing等应用场景中,需要将阿拉伯数字转换为大写中文以满足特定的格式要求。...
这段代码是用于将数字转换为中文大写的人民币表示方式,主要应用于财务软件或者与货币相关的程序中,方便在中文环境中准确地表示金额。这个函数名为`GetChinaNum`,接收4个参数:`otherNum`、`isRMB`、`numOption`和...
在Oracle数据库环境中,有时我们需要将数字金额转换成汉字大写形式,这在财务报表或理财程序中尤为常见,因为汉字大写是财务领域的一种标准表示方式,可以避免因数字混淆而引发的错误。本篇文章将深入探讨如何在...
Java 人民币金额数字转换成大写 Java 人民币金额数字转换成大写是 Java 面试中最常见的...通过使用 NumberFormat 类和 HashMap 来存储中文数字和人民币金额的对应关系,我们可以轻松地实现人民币金额数字转换成大写。