基本信息
源码名称:将小写金额转换为大写金额
源码大小:0.05M
文件格式:.rar
开发语言:C#
更新时间:2019-08-16
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
伍佰贰拾伍元整的转换结果如下:
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
string rmbStr = "伍佰贰拾伍元整";
//大写金额转换
decimal money = ToLowerCase(rmbStr);
Console.WriteLine(money);
Console.ReadKey();
}
/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
private static decimal ToLowerCaseFunction(string value)
{
List<string> list = new List<string>();
if (value.Contains("仟"))
{
var arr1 = Regex.Split(value, @"仟", RegexOptions.IgnoreCase);
if (arr1 != null && arr1.Length > 0)
{
list.Add(arr1[0] "000");
}
if (arr1.Length > 1)
{
value = arr1[1];
if (value.Contains("佰"))
{
var arr2 = Regex.Split(value, @"佰", RegexOptions.IgnoreCase);
if (arr2 != null && arr2.Length > 0)
{
list.Add(arr2[0] "00");
}
if (arr2.Length > 1)
{
value = arr2[1];
if (value.Contains("拾"))
{
var arr3 = Regex.Split(value, @"拾", RegexOptions.IgnoreCase);
if (arr3 != null && arr3.Length > 0)
{
list.Add(arr3[0] "0");
}
if (arr3.Length > 1)
{
list.Add(arr3[1]);
}
}
else //不含拾 拾
{
list.Add(value);
}
}
}
else //不含佰的情况
{
if (value.Contains("拾"))
{
var arr3 = Regex.Split(value, @"拾", RegexOptions.IgnoreCase);
if (arr3 != null && arr3.Length > 0)
{
list.Add(arr3[0] "0");
}
if (arr3.Length > 1)
{
list.Add(arr3[1]);
}
}
else //不含拾 拾
{
list.Add(value);
}
}
}
}
else //不含仟的情况
{
if (value.Contains("佰"))
{
var arr2 = Regex.Split(value, @"佰", RegexOptions.IgnoreCase);
if (arr2 != null && arr2.Length > 0)
{
list.Add(arr2[0] "00");
}
if (arr2.Length > 1)
{
value = arr2[1];
if (value.Contains("拾"))
{
var arr3 = Regex.Split(value, @"拾", RegexOptions.IgnoreCase);
if (arr3 != null && arr3.Length > 0)
{
list.Add(arr3[0] "0");
}
if (arr3.Length > 1)
{
list.Add(arr3[1]);
}
}
else //不含拾
{
list.Add(value);
}
}
}
else //不含佰的情况
{
if (value.Contains("拾"))
{
var arr3 = Regex.Split(value, @"拾", RegexOptions.IgnoreCase);
if (arr3 != null && arr3.Length > 0)
{
list.Add(arr3[0] "0");
}
if (arr3.Length > 1)
{
list.Add(arr3[1]);
}
}
else //不含拾
{
list.Add(value);
}
}
}
decimal result = 0;
if (list != null && list.Count > 0)
{
foreach (var item in list)
{
decimal number = 0;
if (decimal.TryParse(item, out number))
{
result = number;
}
}
}
return result;
}
/// <summary>
/// 将人民币金额转为数字格式
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static decimal ToLowerCase(string str)
{
NameValueCollection filterList = new NameValueCollection();
filterList.Add("零", "0");
filterList.Add("壹", "1");
filterList.Add("贰", "2");
filterList.Add("叁", "3");
filterList.Add("肆", "4");
filterList.Add("伍", "5");
filterList.Add("五", "5");
filterList.Add("陆", "6");
filterList.Add("柒", "7");
filterList.Add("捌", "8");
filterList.Add("玖", "9");
filterList.Add("元", "圆");
filterList.Add("正", "整");
filterList.Add("千", "仟");
filterList.Add("整", "");
for (int i = 0; i < filterList.Count; i )
{
string key = filterList.GetKey(i);
if (str.Contains(key))
{
str = str.Replace(key, filterList.Get(i));
}
}
List<decimal> decimalList = new List<decimal>();
decimal tempValue = 0;
//拆分
if (str.Contains("亿"))
{
var arr = Regex.Split(str, @"亿", RegexOptions.IgnoreCase);
tempValue = ToLowerCaseFunction(arr[0]);
if (arr.Length > 1)
{
str = arr[1];
}
decimalList.Add(tempValue * 100000000);
}
if (str.Contains("万"))
{
var arr = Regex.Split(str, @"万", RegexOptions.IgnoreCase);
tempValue = ToLowerCaseFunction(arr[0]);
if (arr.Length > 1)
{
str = arr[1];
}
decimalList.Add(tempValue * 10000);
}
if (str.Contains("圆"))
{
var arr = Regex.Split(str, @"圆", RegexOptions.IgnoreCase);
tempValue = ToLowerCaseFunction(arr[0]);
if (arr.Length > 1)
{
str = arr[1];
}
decimalList.Add(tempValue);
}
if (str.Contains("角") || str.Contains("分"))
{
str = str.Replace("角", "").Replace("分", "");
decimal.TryParse(str, out tempValue);
decimalList.Add(tempValue / 100);
}
return Math.Round(decimalList.Sum(), 2); //保留两位小数
}
}
}