C# 金额数字转中文的方法
2024-09-08 00:14:14
/// <summary>
/// 金额数字转大写(带小数点)
/// </summary>
public static string PriceToCn(decimal price)
{
//数字转大写
string[] n = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
string[] d = { "", "分", "角", "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿" }; //不同位置的数字要加单位
List<string> needReplace = new List<string> { "零拾", "零佰", "零仟", "零万", "零亿", "亿万", "零元", "零零", "零角", "零分" };
List<string> afterReplace = new List<string> { "零", "零", "零", "万", "亿", "亿", "元", "零", "零", "" }; string e = price % 1 == 0 ? "整" : ""; //金额是整数,加一个“整”结尾
string re = "";
int a = (int)(price * 100);
int k = 1;
while (a != 0)
{
//初步转换大小写
re = n[a % 10] + d[k] + re;
a = a / 10;
k = k < 11 ? k + 1 : 4;
} string need = needReplace.Where(tb => re.Contains(tb)).FirstOrDefault<string>();
while (need != null)
{
int i = needReplace.IndexOf(need);
re = re.Replace(needReplace[i], afterReplace[i]);
need = needReplace.Where(tb => re.Contains(tb)).FirstOrDefault<string>();
}//循环排除特殊情况
re = re == "" ? "零元" : re + e; return re;
}
最新文章
- 【读书笔记《Bootstrap 实战》】1.初识Bootstrap
- android app自动化测试之UIAutomator
- JSF 抽象和实现例子 (函数和属性)
- 解决stackoverflow打开慢不能注册登录
- STL中算法
- 在Htmel中添加flash
- Java之向左添加零(000001)第二种方法
- 字体在Android View中的输出 drawText
- [LeetCode] 200. Number of Islands 解题思路
- 微信小程序登陆授权
- UNIX网络编程——客户/服务器程序设计示范(二)
- PGSQL-通过SQL语句来计算两个日期相差的天数
- python from entry to abandon4
- linux中mysql配置文件和jdk环境变量
- Eclipse从GitHub下载代码
- python要开始记录了20181125
- JavaStrip和python的变量存储位置
- unity8个入门代码
- android linux 休眠 深度睡眠 查看 方法 调试【转】
- log4j UdpAppender
热门文章
- 【.NET 6】使用.NET 6开发minimal api以及依赖注入的实现、VS2022热重载和自动反编译功能的演示
- ROS机器人开发实践1->;SSH远程登录要点记录
- 洛谷 P4463 - [集训队互测 2012] calc(多项式)
- [R] 添加误差棒的分组折线图:geom_path: Each group consists of only one observation. Do you need to adjust the...
- 如何构建自己的KEGG数据库
- Linux实现批量添加用户及随机密码小脚本
- C语言中的指针与整数相加的值计算
- TD课程通最终版本体验
- CAD简介
- flink---实时项目--day02-----1. 解析参数工具类 2. Flink工具类封装 3. 日志采集架构图 4. 测流输出 5. 将kafka中数据写入HDFS 6 KafkaProducer的使用 7 练习