<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. select选择框中,model传的值并非是页面上的值,而是另一个值

    对于编程来说,money和rebate代表的是金额优惠和折扣优惠,采用money或rebate便于数据存储.但是页面显示给用户的时候是金额优惠和折扣优惠,并不是显示编程中所存储数据.所以选择的mode ...

  2. RabbitMQ八:交换机类型Exchange Types--Topic介绍

    前言 上一章节,我们说了两个类型,本章我们说一下其三:Topic Exchange Topic Exchange  Topic Exchange – 将路由键和某模式进行匹配.此时队列需要绑定要一个模 ...

  3. jQuery在$(function(){})中調用函數

    任務太緊,很少記筆記,記下一篇jQuery中調用函數的例子: 該方法是在載入頁面的時候,判斷 ModelName 不為空,則獲取Model信息加載到Table中: 另外,在點擊半成品編號文本框時,也調 ...

  4. 使用mysql作为配置文件的地址

    server端配置 POM文件 <dependency> <groupId>org.springframework.boot</groupId> <artif ...

  5. 【转】深入理解Android中的SharedPreferences

    SharedPreferences作为Android中数据存储方式的一种,我们经常会用到,它适合用来保存那些少量的数据,特别是键值对数据,比如配置信息,登录信息等.不过要想做到正确使用SharedPr ...

  6. iOS 根据屏幕宽度, 高度判断手机设备

    #define iPhone_5 [UIScreen mainScreen].bounds.size.width == 320.0 #define iPhone_6 [UIScreen mainScr ...

  7. -bash: mysql: command not found 之 MAC

    第一次尝试: ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql 提示:Operation not permitted 再次,加sudo附上管理员权限,依旧 ...

  8. this.$Message.success('提示信息') 少写了一个c 导致报错

    this.$Message.success('提示信息') 少写了一个c 导致报错 而且 $Message 输出还没显示,导致我以为是没有 $Message 对象了,其实全局对象直接调用即可

  9. SQL Server 删除表的默认值约束

    首先查出字段的默认值约束名称,然后根据默认值约束名称删除默认值约束 ) select @constraintName = b.name from syscolumns a,sysobjects b w ...

  10. oracle插入多表(insert all/first)

    1.建测试表   CREATE TABLE EDW_INT   (     AGMT_NO         VARCHAR2(40 BYTE)             NOT NULL,     AG ...