public class Train2Rmb
{
/*
* 将小写的人民币转化成大写
*/
public static String convertToChineseNumber(double number)
{
StringBuffer chineseNumber = new StringBuffer();
String[] num =
{ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
String[] unit =
{ "分", "角", "圆", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟",
"万" };
String[] sign =
{ "¥" };
String tempNumber = String.valueOf(Math.round((number * 100)));
int tempNumberLength = tempNumber.length();
if ("0".equals(tempNumber))
{
return "零圆整";
}
if (tempNumberLength > 15)
{
try
{
throw new Exception("超出转化范围.");
} catch (Exception e)
{
e.printStackTrace();
}
}
boolean preReadZero = true; // 前面的字符是否读零
for (int i = tempNumberLength; i > 0; i--)
{
if ((tempNumberLength - i + 2) % 4 == 0)
{
// 如果在(圆,万,亿,万)位上的四个数都为零,如果标志为未读零,则只读零,如果标志为已读零,则略过这四位
if (i - 4 >= 0 && "0000".equals(tempNumber.substring(i - 4, i)))
{
if (!preReadZero)
{
chineseNumber.insert(0, "零");
preReadZero = true;
}
i -= 3; // 下面还有一个i--
continue;
}
// 如果当前位在(圆,万,亿,万)位上,则设置标志为已读零(即重置读零标志)
preReadZero = true;
}
Integer digit = Integer.parseInt(tempNumber.substring(i - 1, i));
if (digit == 0)
{
// 如果当前位是零并且标志为未读零,则读零,并设置标志为已读零
if (!preReadZero)
{
chineseNumber.insert(0, "零");
preReadZero = true;
}
// 如果当前位是零并且在(圆,万,亿,万)位上,则读出(圆,万,亿,万)
if ((tempNumberLength - i + 2) % 4 == 0)
{
chineseNumber.insert(0, unit[tempNumberLength - i]);
}
}
// 如果当前位不为零,则读出此位,并且设置标志为未读零
else
{
chineseNumber
.insert(0, num[digit] + unit[tempNumberLength - i]);
preReadZero = false;
}
}
// 如果分角两位上的值都为零,则添加一个“整”字
if (tempNumberLength - 2 >= 0
&& "00".equals(tempNumber.substring(tempNumberLength - 2,
tempNumberLength)))
{
chineseNumber.append("整");
}
return sign[0] + chineseNumber.toString();
}
}
分享到:
相关推荐
### 小写人民币转换成大写人民币 在财务、会计以及正式文件中,为了防止篡改,经常需要将小写的阿拉伯数字金额转换为大写形式。这种转换在银行支票填写、合同金额书写等方面尤为常见。本文将详细介绍如何实现从小写...
在Excel电子表格中,将小写人民币转换成大写是一项常见的财务操作,特别是在编制财务报表或填写支票时。以下是一些关于如何在Excel中实现这一转换的关键知识点: 1. **推荐公式1**: 这个公式首先检查数值是否为...
根据提供的文件信息,本文将详细解释如何使用C#语言实现小写人民币数字转换为大写人民币数字的功能。此过程涉及到的编码技术、算法设计及实际应用场景等知识点。 ### C#编程语言简介 C#(发音为 "C Sharp")是由...
Excel中要将人民币小写金额转换成大写格式
这个方法接受一个表示人民币金额的小写字符串,然后通过一系列的除法和取余运算,将每个位上的数字转换成对应的汉字,最后拼接成完整的人民币大写形式。 在实际使用时,你可以这样调用这个方法: ```csharp string...
这篇博客"PHP 人民币小写转换成大写"提供了一个实用的解决方案,通过源码实现这一功能。 首先,我们需要理解人民币金额的大写规则。在中国,人民币金额的大写包括壹、贰、叁、肆、伍、陆、柒、捌、玖、零这些汉字,...
在C语言编程中,开发一个小程序来将人民币的小写金额转换为大写金额是一项常见的任务,尤其在财务软件或银行系统中。这个程序的核心在于理解人民币金额的表示规则,并将其与C语言的数据处理和字符串操作相结合。下面...
在日常的财务工作中,经常需要将数字格式的金额转换成汉字大写形式,尤其是在开具支票、填写电汇凭证或制作记账凭证时更为常见。这种转换不仅能够提高正式文件的专业性,还能避免因数字被篡改而引发的法律纠纷。本文...
人民币大写的宏.在电子表格中,如:可将2980.98自动转化成贰仟玖佰捌拾元零玖角捌分
MFC制作的人民币小写金额转化大写金额,方便出差回来时报账填写账单大写RMB使用,欢迎下载
本文中,我们将使用C语言实现人民币小写金额与大写金额的转换。 在中国,人民币的小写金额与大写金额的转换是一种常见的需求。例如,我们可以输入1002300.90,并将其转换为大写金额“壹佰零拾零万贰仟三佰零拾零元...
本文将详细介绍一个Java程序,该程序用于将小写的人民币金额转换为大写形式。此转换主要用于财务、会计和其他正式场合,在这些场合中,大写金额是标准且必须的格式。此程序能够处理的金额范围最大支持到“仟万亿”,...
人民币数字转换成汉字大写 android Java 运行效率
在JavaScript编程中,有时我们需要将人民币的数字金额(小写)转换为中文的大写形式,以便于财务报表或发票的规范书写。这个过程涉及到字符映射、数字处理以及字符串操作等多个知识点。以下是对这个主题的详细说明:...
将人民币小写金额转换成大写的金额
总的来说,将小写人民币金额转换为大写是一项基础但重要的任务,它涉及到数字与字符串的转化、格式验证以及对特定文化的理解。在开发过程中,确保转换的准确性和效率是关键。通过学习和实践这一知识点,开发者可以更...
我的工作经常需要实现这个功能,以往需要手工转换,过去也找过一些小程序进行转换,不过在小程序中显示好好的字符拷进excel中竟成了乱码,现在有了这个公式,不用自己设置函数,直接拷贝+替换就完成。很棒! 在...
总之,“人民币金额小写转换大写工具 1.0 绿色版”是一个实用且便捷的工具,对于处理人民币金额转换工作提供了极大的便利。它的存在简化了财务人员的工作流程,减少了人为错误,提升了业务处理的效率和准确性。