using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace TJCFinanceWriteOff.BizLogic.Common
{
    /// <summary>
    /// C#金额大写转小写
    /// </summary>
    public static class MoneyUtil
{ public static string RMBChineseConvertToNumber(string str)
{
if (string.IsNullOrEmpty(str))
{
return string.Empty;
} str = str.Replace("零", "").Replace("整", ""); var arr = str.ToCharArray();
double money = ; //最终的金额 bool yi = false;
bool wan = false;
bool qian = false;
bool bai = false;
bool shi = false;
bool yuan = false;
bool jiao = false;
bool fen = false; for (int i = (arr.Length - ); i >= ; i--)
{
double cur = ; if (arr[i] == '分')
{
fen = true;
continue;
}
else if (arr[i] == '角')
{
jiao = true;
fen = false;
continue;
}
else if (arr[i] == '元')
{
yuan = true;
jiao = false;
fen = false;
continue;
}
else if (arr[i] == '拾')
{
shi = true;
yuan = false;
jiao = false;
fen = false;
continue;
}
else if (arr[i] == '佰')
{
bai = true;
shi = false;
yuan = false;
jiao = false;
fen = false;
continue;
}
else if (arr[i] == '仟' || arr[i] == '任')
{
qian = true;
bai = false;
shi = false;
yuan = false;
jiao = false;
fen = false;
continue;
}
else if (arr[i] == '万')
{
wan = true;
qian = false;
bai = false;
shi = false;
yuan = false;
jiao = false;
fen = false;
continue;
}
else if (arr[i] == '亿')
{
yi = true;
wan = false;
qian = false;
bai = false;
shi = false;
yuan = false;
jiao = false;
fen = false;
continue;
} if (fen) cur = ConvertNameToSmall(arr[i]) * 0.01;
else if (jiao)
{
cur = ConvertNameToSmall(arr[i]) * 0.1;
jiao = false;
}
else if (shi) cur = ConvertNameToSmall(arr[i]) * ;
else if (bai) cur = ConvertNameToSmall(arr[i]) * ;
else if (qian) cur = ConvertNameToSmall(arr[i]) * ;
else if (yuan) cur = ConvertNameToSmall(arr[i]) * ;
else
{
cur = ConvertNameToSmall(arr[i]);
} if (yi)
{
cur = cur * ;
}
else if (wan)
{
cur = cur * ;
}
else
{
// cur = cur;
} money += cur;
} return MoneyToString(money);
} private static int ConvertNameToSmall(char str)
{
int name = ;
switch (str.ToString())
{
case "零": name = ; break;
case "壹": name = ; break;
case "贰": name = ; break;
case "叁": name = ; break;
case "肆": name = ; break;
case "伍": name = ; break;
case "陆": name = ; break;
case "柒": name = ; break;
case "捌": name = ; break;
case "玖": name = ; break;
default: break;
}
return name;
} public static string MoneyToString(double money)
{
var moneyArray = money.ToString().ToList();
int index = moneyArray.IndexOf('.');
int integerLengthIndex = index != - ? index : moneyArray.Count;
while (integerLengthIndex - > )
{
moneyArray.Insert(integerLengthIndex - , ',');
integerLengthIndex = moneyArray.IndexOf(',');
}
StringBuilder sb = new StringBuilder("¥");
sb.Append(string.Concat(moneyArray));
switch (moneyArray.IndexOf('.'))
{
case int i when i == moneyArray.Count - :
sb.Append("");
break;
case -:
sb.Append(".00");
break;
default:
break;
}
return sb.ToString();
}
}
}

c# 金钱大写转小写工具类的更多相关文章

  1. 【转载】C#工具类:人民币金额转换为中文大写

    在涉及到金融业务这一块的系统设计中,时常能够遇到的情况是需要将阿拉伯数字的人民币金额自动转换为中文的大写金额.现在互联网上也有很多网站提供此类服务,只要你输入人民币的阿拉伯数字金额,输入后自动给你转换 ...

  2. java常用工具类(java技术交流群57388149)

    package com.itjh.javaUtil;   import java.util.ArrayList; import java.util.List;   /** * * String工具类. ...

  3. java中常用的工具类(一)

    我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工 ...

  4. [分享]一个String工具类,也许你的项目中会用得到

    每次做项目都会遇到字符串的处理,每次都会去写一个StringUtil,完成一些功能. 但其实每次要的功能都差不多: 1.判断类(包括NULL和空串.是否是空白字符串等) 2.默认值 3.去空白(tri ...

  5. Spring 常用工具类

    1) 请求工具类 org.springframework.web.bind.ServletRequestUtils //取请求参数的整数值: public static Integer getIntP ...

  6. Java汉字转成汉语拼音工具类

    Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包. import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...

  7. JS 日期工具类-基于yDate

    源码下载 前言:最近在用到JS日期操作时,发现有一些不方便,于是搜素了一些网上的资料,基于一个开源工具类-yDate 进行了个性化定制,封装成了一个日期工具类工具函数大概介绍:1.普通的日期操作2. ...

  8. JAVA自动生成正则表达式工具类

    经过很久的努力,终于完成了JAVA自动生成正则表达式工具类.还记得之前需要正则,老是从网上找吗?找了想修改也不会修改.现在不用再为此烦恼了,使用此生成类轻松搞定所有正则表达式.赶快在同事面前炫一下吧. ...

  9. 正则表达式工具类,正则表达式封装,Java正则表达式

    正则表达式工具类 正则表达式封装 Java正则表达式 >>>>>>>>>>>>>>>>>>& ...

随机推荐

  1. CF55D Beautiful numbers (数位dp)

    题目链接 题解 一个数能被一些数整除,那么一定被这些数的\(lcm\)整除 那么我们容易想到根据\(lcm\)设状态 我们可以发现有用的\(lcm\)只有\(48\)个 那么按照一般的数位\(dp\) ...

  2. 7月清北学堂培训 Day 3

    今天是丁明朔老师的讲授~ 数据结构 绪论 下面是天天见的: 栈,队列: 堆: 并查集: 树状数组: 线段树: 平衡树: 下面是不常见的: 主席树: 树链剖分: 树套树: 下面是清北学堂课程表里的: S ...

  3. python ros 设置机器人的位置

    #!/usr/bin/env python import rospy import math from tf import transformations from geometry_msgs.msg ...

  4. 爬虫之python3用execjs执行JS代码

    JS运行环境 Node.js 是Javascript语言服务器端运行环境 安装和配置:https://www.runoob.com/nodejs/nodejs-install-setup.html 测 ...

  5. c isnormal

    Returns whether x is a normal value: i.e., whether it is neither infinity, NaN, zero or subnormal. / ...

  6. 汇编语言学习-Dos下的调试工具debug的使用教程

    1.常用的debug功能 (1)用Debug的R命令查看.改变CPU寄存器内容: (2)用Debug的D命令查看内存中的内容: (3)用Debug的E命令查看内存中的内容: (4)用Debug的U命令 ...

  7. JavaWeb_(Spring框架)用户登陆Spring整合到Servlet中

    一.使用servlet技术开发用户登陆功能 在MySQL中准备一个user表,表中增加一条假数据 使用Servlet实现用户登陆的功能 用户登陆的<from>表单 <form id= ...

  8. 为ubuntu安装powerline记录

    C:\Users\win10的用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\L ...

  9. 64位linux下玩32位汇编编程

    利用下假期,打算把linux下的汇编语言给熟悉下,结果是以32位为版本的,只能在办公室的机器上跑了个opensuse的32位版本,家里的suse挂了,无法输入中文.打算再安装下32位系统,今天找到了个 ...

  10. Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作

    v-viewer 用于图片浏览的Vue组件,支持旋转.缩放.翻转等操作,基于viewer.js. 从0.x迁移 你需要做的唯一改动就是手动引入样式文件: 1 import 'viewerjs/dist ...