数字金额转换为大写(中文)金额

hpp923 2009-04-16 12:19:39


用户在一个文本框中输入一个数字金额,
将这个数字金额转换成中文金额。

比如:用户输入”635“ 则转换成“陆佰叁十伍”
...全文
325 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
teerhu 2009-04-16
  • 打赏
  • 举报
回复
public class no4 {

public static void main(String[] args) {
// 金额大小写转换
float money=2038.0f;
int m1,m2,m3,m4,m5,m6,temp;
temp = (int)(money*100);
System.out.println(money);

m1 =temp%1000000/100000;
m2 =temp%100000/10000;
m3 =temp%10000/1000;
m4 =temp%1000/100;
m5 =temp%100/10;
m6 =temp%10;

char c1,c2,c3,c4,c5,c6;
c1=transe(m1);
c2=transe(m2);
c3=transe(m3);
c4=transe(m4);
c5=transe(m5);
c6=transe(m6);
String str="";
if(m1!=0)
{
str+=c1+"千";
}
if(m2!=0)
{
str+=c2+"百";
}
if(m1!=0&&m2==0&&(m3!=0||m4!=0))
{
str+="零";
}
if(m3!=0)
{
str+=c3+"十";
}
if(m2!=0&&m3==0&&m4!=0)
{
str+="零";
}
if(m4!=0)
{
str+=c4;
}
str+="元";
if(m5 ==0&&m6 ==0)
{
str+="整";
}
if(m5!=0)
{
str+=c5+"角";
}
if(m5==0&&m6!=0)
{
str+="零";
}
if(m6!=0)
{
str+=c6+"分";
}

System.out.print(str+"\n");
System.out.println("..........................");

}

public static char transe(int m)
{
char r=' ';
switch (m)
{
case 0:
r ='零';
break;
case 1:
r ='壹';
break;
case 2:
r ='贰';
break;
case 3:
r ='叁';
break;
case 4:
r ='肆';
break;
case 5:
r ='伍';
break;
case 6:
r ='陆';
break;
case 7:
r ='柒';
break;
case 8:
r ='捌';
break;
case 9:
r ='玖';
break;

}
return r;
}
}





-------------------------------------------------------------------------------------



static string GetChineseString(double number)
{
string[] cStr = new string[] { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "", "十", "百", "千" };
string[] unitStr = new string[] { "", "万", "亿", "万", "兆"};
long intPart = (long)number;
string result = string.Empty;
for (int i = 0; i < intPart.ToString().Length; i++)
{
int temp = (int)((long)(intPart / (long)Math.Pow(10, i)) % 10);
if (i % 4 == 0) result = unitStr[(int)i / 4] + result;
result = cStr[temp] + cStr[10 + i % 4] + result;
}
result = Regex.Replace(result, "(零[十百千])+", "零");
result = Regex.Replace(result, "零{2,}", "零");
result = Regex.Replace(result, "零([万亿兆])", "$1");
if(result.Length>1)result = result.TrimEnd('零');
if (number - intPart == 0) return result;
string decimalPart = number.ToString().Split('.')[1];
result += "点";
for (int j = 0; j < decimalPart.Length; j++)
{
int temp = int.Parse(decimalPart[j].ToString());
result += cStr[temp];
}
return result;
}

static string GetChineseString(long number)
{
string[] cStr =new string[] {"零","一","二","三","四","五","六","七","八","九","","十","百","千"};
string[] unitStr = new string[] { "", "万", "亿", "万", "兆" };
string result = string.Empty;
for (int i = 0; i < number.ToString().Length; i++)
{
int temp = (int)((long)(number / (long)Math.Pow(10, i)) % 10);//获取第i位的数字
if (i % 4 == 0) result = unitStr[(int)i / 4] + result;//检查是否需要加上万或亿等
result = cStr[temp] + cStr[10 + i % 4] + result;
}
result = Regex.Replace(result, "(零[十百千])+", "零");
result = Regex.Replace(result, "零{2,}", "零");
result = Regex.Replace(result, "零([万亿兆])", "$1");
if(result.Length>1)result = result.TrimEnd('零');
return result;
}







-----------------------------------------------------------------------------------
zftow110 2009-04-16
  • 打赏
  • 举报
回复

public string Money(double dd)
{
try
{
string s = dd.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A");
string d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");
string value = Regex.Replace(d, ".", delegate(Match m)
{ return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟萬億兆京垓秭穰"[m.Value[0] - '-'].ToString(); });
return value;
}
catch
{
return AutoString;
}
}
liuhongdeyy 2009-04-16
  • 打赏
  • 举报
回复

http://www.lhdwy.com.cn/aspnet/20090404/0904041044430769.html
itcrazyman 2009-04-16
  • 打赏
  • 举报
回复
用js脚本吧,网上搜一下很多的,如果你找不到,给我邮箱发个信息我发给你!
waqizhenyu008@163.com
ak8800 2009-04-16
  • 打赏
  • 举报
回复
需要考虑小数点吗?
zzxap 2009-04-16
  • 打赏
  • 举报
回复
http://download.csdn.net/source/762662
wfcfan 2009-04-16
  • 打赏
  • 举报
回复
ToMoeny.js
/*
===========================================
//转换成大写金额
===========================================
*/
Number.prototype.toMoney = function()
{
var MAXIMUM_NUMBER = 99999999999.99;
var CN_ZERO= "零";
var CN_ONE= "壹";
var CN_TWO= "贰";
var CN_THREE= "叁";
var CN_FOUR= "肆";
var CN_FIVE= "伍";
var CN_SIX= "陆";
var CN_SEVEN= "柒";
var CN_EIGHT= "捌";
var CN_NINE= "玖";
var CN_TEN= "拾";
var CN_HUNDRED= "佰";
var CN_THOUSAND = "仟";
var CN_TEN_THOUSAND= "万";
var CN_HUNDRED_MILLION= "亿";
var CN_SYMBOL= "";
var CN_DOLLAR= "元";
var CN_TEN_CENT = "角";
var CN_CENT= "分";
var CN_INTEGER= "整";

var integral;
var decimal;
var outputCharacters;
var parts;
var digits, radices, bigRadices, decimals;
var zeroCount;
var i, p, d;
var quotient, modulus;

if (this > MAXIMUM_NUMBER)
return "";
parts = (this + "").split(".");
if (parts.length > 1)
{
integral = parts[0];
decimal = parts[1];
decimal = decimal.substr(0, 2);
}
else
{
integral = parts[0];
decimal = "";
}
digits= new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE);
radices= new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);
bigRadices= new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION);
decimals= new Array(CN_TEN_CENT, CN_CENT);
outputCharacters = "";
if (Number(integral) > 0)
{
zeroCount = 0;
for (i = 0; i < integral.length; i++)
{
p = integral.length - i - 1;
d = integral.substr(i, 1);
quotient = p / 4;
modulus = p % 4;
if (d == "0")
zeroCount++;
else
{
if (zeroCount > 0)
outputCharacters += digits[0];
zeroCount = 0;
outputCharacters += digits[Number(d)] + radices[modulus];
}

if (modulus == 0 && zeroCount < 4)
outputCharacters += bigRadices[quotient];
}
outputCharacters += CN_DOLLAR;
}
if (decimal != "")
{
for (i = 0; i < decimal.length; i++)
{
d = decimal.substr(i, 1);
if (d != "0")
outputCharacters += digits[Number(d)] + decimals[i];
}
}
if (outputCharacters == "")
outputCharacters = CN_ZERO + CN_DOLLAR;
if (decimal == "")
outputCharacters += CN_INTEGER;
outputCharacters = CN_SYMBOL + outputCharacters;
return outputCharacters;
}

<SCRIPT LANGUAGE="JavaScript">
<!--
var m = new Number(34.55);
m.toMoney();
//-->
</SCRIPT>
hpp923 2009-04-16
  • 打赏
  • 举报
回复

小数点也要考虑

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧