将货币格式由小写转换成大写的c#类
2007-11-15 13:42
417 查看
public string GetCapitalization(double Money)
{
string CN_ZERO = "零";
string CN_ONE = "壹";
string CN_TWO = "贰";
string CN_THREE = "叁";
string CN_FOUR = "肆";
string CN_FIVE = "伍";
string CN_SIX = "陆";
string CN_SEVEN = "柒";
string CN_EIGHT = "捌";
string CN_NINE = "玖";
string CN_TEN = "拾";
string CN_HUNDRED = "佰";
string CN_THOUSAND = "仟";
string CN_TEN_THOUSAND = "万";
string CN_HUNDRED_MILLION = "亿";
string CN_SYMBOL = "";//人民币
string **_*OLLAR = "元";
string CN_TEN_CENT = "角";
string CN_CENT = "分";
string CN_INTEGER = "整";
string CN_Negative = "负";
//变量
string integral; //整数部分
string Float; //小数部分
string outputCharacters; //大写金额
int zeroCount;
int i;
int p;
string d;
int quotient;
int modulus;
string currencyDigits = Money.ToString("0.00");
string[] parts = currencyDigits.Split('.');
integral = parts[0];
Float = parts[1];
string[] digits =
{CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE};
string[] radices =
{"", CN_TEN, CN_HUNDRED, CN_THOUSAND};
string[] bigRadices =
{"", CN_TEN_THOUSAND, CN_HUNDRED_MILLION};
string[] decimals =
{CN_TEN_CENT, CN_CENT};
//开始转换
outputCharacters = "";
//整数的转换
if (int.Parse(integral) > 0)
{
zeroCount = 0;
for (i = 0; i < integral.Length; i++)
{
p = integral.Length - i - 1;
d = integral.Substring(i, 1);
quotient = p / 4;
modulus = p % 4;
if (d == "0")
{
zeroCount++;
}
else
{
if (zeroCount > 0)
{
outputCharacters += digits[0];
}
zeroCount = 0;
outputCharacters += digits[int.Parse(d)] + radices[modulus];
}
if (modulus == 0 && zeroCount < 4)
{
outputCharacters += bigRadices[quotient];
}
}
outputCharacters += **_*OLLAR;
}
else if(int.Parse(integral) < 0)
{
zeroCount = 0;
outputCharacters += CN_Negative;
integral = integral.Substring(1,integral.Length);
for (i = 0; i < integral.Length; i++)
{
p = integral.Length - i - 1;
d = integral.Substring(i, 1);
quotient = p / 4;
modulus = p % 4;
if (d == "0")
{
zeroCount++;
}
else
{
if (zeroCount > 0)
{
outputCharacters += digits[0];
}
zeroCount = 0;
outputCharacters += digits[int.Parse(d)] + radices[modulus];
}
if (modulus == 0 && zeroCount < 4)
{
outputCharacters += bigRadices[quotient];
}
}
outputCharacters += **_*OLLAR;
}
//小数的转换
if (Float != "")
{
for (i = 0; i < Float.Length; i++)
{
d = Float.Substring(i, 1);
if (d != "0")
{
outputCharacters += digits[int.Parse(d)] + decimals[i];
}
}
}
if (outputCharacters == "")
{
outputCharacters = CN_ZERO + **_*OLLAR;
}
if (int.Parse(Float) == 0)
{
outputCharacters += CN_INTEGER;
}
outputCharacters = CN_SYMBOL + outputCharacters;
return outputCharacters;
}
{
string CN_ZERO = "零";
string CN_ONE = "壹";
string CN_TWO = "贰";
string CN_THREE = "叁";
string CN_FOUR = "肆";
string CN_FIVE = "伍";
string CN_SIX = "陆";
string CN_SEVEN = "柒";
string CN_EIGHT = "捌";
string CN_NINE = "玖";
string CN_TEN = "拾";
string CN_HUNDRED = "佰";
string CN_THOUSAND = "仟";
string CN_TEN_THOUSAND = "万";
string CN_HUNDRED_MILLION = "亿";
string CN_SYMBOL = "";//人民币
string **_*OLLAR = "元";
string CN_TEN_CENT = "角";
string CN_CENT = "分";
string CN_INTEGER = "整";
string CN_Negative = "负";
//变量
string integral; //整数部分
string Float; //小数部分
string outputCharacters; //大写金额
int zeroCount;
int i;
int p;
string d;
int quotient;
int modulus;
string currencyDigits = Money.ToString("0.00");
string[] parts = currencyDigits.Split('.');
integral = parts[0];
Float = parts[1];
string[] digits =
{CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE};
string[] radices =
{"", CN_TEN, CN_HUNDRED, CN_THOUSAND};
string[] bigRadices =
{"", CN_TEN_THOUSAND, CN_HUNDRED_MILLION};
string[] decimals =
{CN_TEN_CENT, CN_CENT};
//开始转换
outputCharacters = "";
//整数的转换
if (int.Parse(integral) > 0)
{
zeroCount = 0;
for (i = 0; i < integral.Length; i++)
{
p = integral.Length - i - 1;
d = integral.Substring(i, 1);
quotient = p / 4;
modulus = p % 4;
if (d == "0")
{
zeroCount++;
}
else
{
if (zeroCount > 0)
{
outputCharacters += digits[0];
}
zeroCount = 0;
outputCharacters += digits[int.Parse(d)] + radices[modulus];
}
if (modulus == 0 && zeroCount < 4)
{
outputCharacters += bigRadices[quotient];
}
}
outputCharacters += **_*OLLAR;
}
else if(int.Parse(integral) < 0)
{
zeroCount = 0;
outputCharacters += CN_Negative;
integral = integral.Substring(1,integral.Length);
for (i = 0; i < integral.Length; i++)
{
p = integral.Length - i - 1;
d = integral.Substring(i, 1);
quotient = p / 4;
modulus = p % 4;
if (d == "0")
{
zeroCount++;
}
else
{
if (zeroCount > 0)
{
outputCharacters += digits[0];
}
zeroCount = 0;
outputCharacters += digits[int.Parse(d)] + radices[modulus];
}
if (modulus == 0 && zeroCount < 4)
{
outputCharacters += bigRadices[quotient];
}
}
outputCharacters += **_*OLLAR;
}
//小数的转换
if (Float != "")
{
for (i = 0; i < Float.Length; i++)
{
d = Float.Substring(i, 1);
if (d != "0")
{
outputCharacters += digits[int.Parse(d)] + decimals[i];
}
}
}
if (outputCharacters == "")
{
outputCharacters = CN_ZERO + **_*OLLAR;
}
if (int.Parse(Float) == 0)
{
outputCharacters += CN_INTEGER;
}
outputCharacters = CN_SYMBOL + outputCharacters;
return outputCharacters;
}
相关文章推荐
- 将货币格式由小写转换成大写的c#类
- 将货币格式由小写转换成大写的c#类
- TP5-金钱转换,将小写的金钱数转换成大写格式
- 小写数字转换为中文大写的最完整C#方案
- C#中将小写金额转换为大写金额
- C#小写数字金额转换成大写人民币金额的算法
- C#中把货币、日期转换成中文大写
- 将用户输入的小写货币形式转换为规范的大写货币形式
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 一个数字转中文大写货币数字的类.完美兼容于C#所有值类型转换和操作,beta版.希望大家多多纠正.
- C#实现小写金额转换大写的方法
- C# 把日期字符串转换为日期类型 (MM大写为月、小写为分钟)
- 小写数字转换为中文大写的最完整C#方案
- 使用 Visual C# .NET 将字符串转换为小写、大写或词首字母大写
- C#金额小写转换为大写
- 将货币的小写转换为大写,例如:肆佰陆拾贰圆捌角柒分
- 小写数字金额转换成大写金额(C#)
- js脚本_小写金额转换成大写(支持千分位格式及负数输入,整数部分可达44位-千正~元,小数部分可达5位-角~丝) AmountInWords(dValue, maxDec)
- 将用户输入的小写货币形式转换为规范的大写货币形式
- 货币数字转换为中文大写格式