/// <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;
}

最新文章

  1. 【读书笔记《Bootstrap 实战》】1.初识Bootstrap
  2. android app自动化测试之UIAutomator
  3. JSF 抽象和实现例子 (函数和属性)
  4. 解决stackoverflow打开慢不能注册登录
  5. STL中算法
  6. 在Htmel中添加flash
  7. Java之向左添加零(000001)第二种方法
  8. 字体在Android View中的输出 drawText
  9. [LeetCode] 200. Number of Islands 解题思路
  10. 微信小程序登陆授权
  11. UNIX网络编程——客户/服务器程序设计示范(二)
  12. PGSQL-通过SQL语句来计算两个日期相差的天数
  13. python from entry to abandon4
  14. linux中mysql配置文件和jdk环境变量
  15. Eclipse从GitHub下载代码
  16. python要开始记录了20181125
  17. JavaStrip和python的变量存储位置
  18. unity8个入门代码
  19. android linux 休眠 深度睡眠 查看 方法 调试【转】
  20. log4j UdpAppender

热门文章

  1. 【.NET 6】使用.NET 6开发minimal api以及依赖注入的实现、VS2022热重载和自动反编译功能的演示
  2. ROS机器人开发实践1-&gt;SSH远程登录要点记录
  3. 洛谷 P4463 - [集训队互测 2012] calc(多项式)
  4. [R] 添加误差棒的分组折线图:geom_path: Each group consists of only one observation. Do you need to adjust the...
  5. 如何构建自己的KEGG数据库
  6. Linux实现批量添加用户及随机密码小脚本
  7. C语言中的指针与整数相加的值计算
  8. TD课程通最终版本体验
  9. CAD简介
  10. flink---实时项目--day02-----1. 解析参数工具类 2. Flink工具类封装 3. 日志采集架构图 4. 测流输出 5. 将kafka中数据写入HDFS 6 KafkaProducer的使用 7 练习