<span style="white-space:pre">	</span>/// <summary>
/// 数字转金额大写
/// 调用示例:String desc = CommonUtils.convertEnDes(new Decimal("100.55"), "say", "RMB", "only"));
/// 返回 desc为"say RMB one hundred dolt five five only"
/// </summary>
/// <returns></returns>
public static String convertEnDes(Object obj, String prefix, String currencyISO, String suffix)
{
if (obj == null)
{
return "";
}
Decimal val = Convert.ToDecimal(obj);
StringBuilder sb = new StringBuilder();
sb.Append(prefix).Append(" ");
String[] amtEnDesc = getAmtEnDesc(val);
sb.Append(currencyISO).Append(" ");
sb.Append(amtEnDesc[0]).Append(" "); if (amtEnDesc[1].Trim().Length != 0 && !"zero".Equals(amtEnDesc[1].Trim(), StringComparison.OrdinalIgnoreCase))
{
sb.Append("point ").Append(amtEnDesc[1]);
}
sb.Append(" ").Append(suffix);
return sb.ToString().ToUpper();
} private static String convertLessThanOneThousand(long number)
{
String soFar;
if (number % 100 < 20)
{
soFar = FTConst.numNames[(int)(number % 100)];
number /= 100;
}
else
{
soFar = FTConst.numNames[(int)(number % 10)];
number /= 10; soFar = FTConst.tensNames[(int)(number % 10)] + soFar;
number /= 10;
}
if (number == 0)
return soFar;
return FTConst.numNames[(int)number] + "hundred " + soFar;
} //转换整数部分
public static String convert(long number)
{
string[] majorNames = { " ", "thousand ",
"million ", "billion ", "trillion ", "quadrillion ",
"quintillion " };
if (number == 0)
{
return "zero ";
}
String prefix = " ";
if (number < 0)
{
number = -number;
prefix = "negative ";
}
String soFar = " ";
int place = 0;
do
{
long n = (number % 1000);
if (n != 0)
{
String s = convertLessThanOneThousand(n);
soFar = s + majorNames[place] + soFar;
}
place++;
number /= 1000;
} while (number > 0);
return (prefix + soFar).Trim();
} //转换小数部分
public static String convertDot(string number)
{
if (number.Trim().Length == 0)
{
return " ";
}
String soFar = " ";
long c = Convert.ToInt64(number);
do
{
long n = (c % 10);
if (n != 0)
{
String s = convertLessThanOneThousand(n);
soFar = s + soFar;
} c /= 10;
} while (c > 0);
return soFar.Trim();
} private static String[] getAmtEnDesc(Decimal val)
{
String[] ret = new String[2];
String valDes = val.ToString();
String[] valSplit = valDes.Split('.');
long part = Convert.ToInt64(valSplit[0]);
ret[0] = convert(part);
try
{
ret[1] = convertDot(valSplit[1]);
}
catch
{
ret[1] = "";
}
return ret;
}

C#中将数字金额转成英文大写金额的函数的更多相关文章

  1. PHP 数字金额转换成中文大写金额的函数 数字转中文

    /** *数字金额转换成中文大写金额的函数 *String Int $num 要转换的小写数字或小写字符串 *return 大写字母 *小数位为两位 **/ function num_to_rmb($ ...

  2. 转一个财务方面常用到的数字金额转成汉字大写金额 php类

    系统里有牵扯到财务.合同等方面的处理时,常常需要把数字金额转成汉字大写金额(貌似这样正规),转一个转换的php class吧!<?php// 诸海加(ALPHA .z)// 2000-7-19 ...

  3. ORACLE金额转换成英文大写的函数

    用法如下:get_capital_money(Currency, Money) Currency: 货币或货币描述,将放在英文大写的前面: Money:金额.支持两位小数点.如果需要更多的小数点,请自 ...

  4. SQLSERVER金额转换成英文大写的函数

    CREATE FUNCTION [dbo].[f_num_eng] (@num numeric(15,2)) RETURNS varchar(400) WITH ENCRYPTION AS BEGIN ...

  5. PHP算法--将数字金额转换成大写金额

    最近在看一些PHP算法题,遇到一个将数字金额转换成大写金额的小算法题,这里贴出自己的一个例子. 注:这个小算法适用于10万以内的金额. <?php //$num = 12345.67; func ...

  6. JavaScript将输入的数字金额转换成对应的中文大写金额

    // 将输入的数字金额转换成对应的中文大写金额 // idNumber输入的数字金额,idCHN输出的中文大写金额 function TransformNumberIntoCHN(idNumber, ...

  7. 在C#中将金额转换成中文大写金额

    具体代码如下: /// <summary> /// 金额转换成中文大写金额 /// </summary> /// <param name="LowerMoney ...

  8. C#小写数字金额转换成大写人民币金额的算法

    C#小写数字金额转换成大写人民币金额的算法 第一种方法: using System.Text.RegularExpressions;//首先引入命名空间 private string DaXie(st ...

  9. c#金额转换成中文大写金额

    2018-08-24 转别人 c#金额转换成中文大写金额 /// <summary> /// 金额转换成中文大写金额 /// </summary> /// <param ...

随机推荐

  1. 开发原生安卓cordova插件(有原生界面)

    上文开发的插件没有调用原生界面,本文介绍开发带有activity的插件 本文很多操作与上文重复,重复部分会省略 首先打开plug1,先开发插件的原生代码 在以下命名空间创建一个activity 名称为 ...

  2. UVM基础之------uvm_transaction

    uvm_transaction继承自uvm_object,添加了timing和recording接口,该类是uvm_sequence_item的基类.下边将做剖析 1. 这个类提供了时间戳属性(tim ...

  3. 如何实现Windows宿主系统和虚拟机ubuntu系统文件互相访问

    我的宿主操作系统是Windows 10,使用Oracle的Virtual Box安装了Ubuntu. 因为工作需要我经常得在两个系统之间互相拷贝一些数据,下面是具体步骤,可以实现Windows 10和 ...

  4. oracle插入中文乱码

    执行sql: select  userenv('language')     from dual;  --  AMERICAN_AMERICA.ZHS16GBK select * from v$nls ...

  5. 众皓网络(T 面试)

    1.你们项目中哪里用到了Redis? 2.Redis中存储的数据,你们什么时候进行更新? 3.你用过消息队列吗? 4.你写的这个微服务项目拆分成了几个服务? 5.SpringCloud项目怎么部署的?

  6. Mathematics-基础:1+2+3+……+n

    设Sn=1+2+3+……+n-1+n则有Sn=n+n-1+……+3+2+1两式相加得2Sn=(n+1)+(n+1)+……+(n+1)2Sn=n×(n+1)Sn=n×(n+1)/2

  7. python3查询Excel中A表在B表没有的数据,并保存到新的Excel,这里用的是“xlrd”和“xlwt”

    import xlrd import xlwt # 打开A表,将A表的数据存放到cols1中,这里打印出来是方便查看测试数据. data1 = xlrd.open_workbook(r'F:\cars ...

  8. Needleman_Wunsch

    Needleman_Wunsch算法思路: 1.建立二维数组 2.建立评分模式 load1:向右:-2 load2:向下:-2 load3:对角线:依据是否配得到 匹配:+1 不匹配:-1 3.双层循 ...

  9. NOIP考纲

    首先来一张图,很直观(截止到2012年数据) 下面是收集的一些,我改了一下 红色加粗表示特别重要,必须掌握绿色加粗表示最好掌握,可能性不是很大,但是某些可以提高程序效率 高精度 a.加法 b.减法 c ...

  10. Day01:我的Python学习之路

    1.Python是什么语言? Python是动态的解释性的强类型定义的语言. (1)动态语言与静态语言 ①静态语言:在编译期间就会去做数据类型检查的语言,如C,C++. ②动态语言:在运行期间才会去做 ...