C#中将数字金额转成英文大写金额的函数
<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#中将数字金额转成英文大写金额的函数的更多相关文章
- PHP 数字金额转换成中文大写金额的函数 数字转中文
/** *数字金额转换成中文大写金额的函数 *String Int $num 要转换的小写数字或小写字符串 *return 大写字母 *小数位为两位 **/ function num_to_rmb($ ...
- 转一个财务方面常用到的数字金额转成汉字大写金额 php类
系统里有牵扯到财务.合同等方面的处理时,常常需要把数字金额转成汉字大写金额(貌似这样正规),转一个转换的php class吧!<?php// 诸海加(ALPHA .z)// 2000-7-19 ...
- ORACLE金额转换成英文大写的函数
用法如下:get_capital_money(Currency, Money) Currency: 货币或货币描述,将放在英文大写的前面: Money:金额.支持两位小数点.如果需要更多的小数点,请自 ...
- SQLSERVER金额转换成英文大写的函数
CREATE FUNCTION [dbo].[f_num_eng] (@num numeric(15,2)) RETURNS varchar(400) WITH ENCRYPTION AS BEGIN ...
- PHP算法--将数字金额转换成大写金额
最近在看一些PHP算法题,遇到一个将数字金额转换成大写金额的小算法题,这里贴出自己的一个例子. 注:这个小算法适用于10万以内的金额. <?php //$num = 12345.67; func ...
- JavaScript将输入的数字金额转换成对应的中文大写金额
// 将输入的数字金额转换成对应的中文大写金额 // idNumber输入的数字金额,idCHN输出的中文大写金额 function TransformNumberIntoCHN(idNumber, ...
- 在C#中将金额转换成中文大写金额
具体代码如下: /// <summary> /// 金额转换成中文大写金额 /// </summary> /// <param name="LowerMoney ...
- C#小写数字金额转换成大写人民币金额的算法
C#小写数字金额转换成大写人民币金额的算法 第一种方法: using System.Text.RegularExpressions;//首先引入命名空间 private string DaXie(st ...
- c#金额转换成中文大写金额
2018-08-24 转别人 c#金额转换成中文大写金额 /// <summary> /// 金额转换成中文大写金额 /// </summary> /// <param ...
随机推荐
- 组件的 render 方法
React.js 中一切皆组件,用 React.js 写的其实就是 React.js 组件.我们在编写 React.js 组件的时候,一般都需要继承 React.js 的 Component(还有别的 ...
- P1554 梦中的统计
题目背景 Bessie 处于半梦半醒的状态.过了一会儿,她意识到她在数数,不能入睡. 题目描述 Bessie的大脑反应灵敏,仿佛真实地看到了她数过的一个又一个数.她开始注意每一个数码(0..9):每一 ...
- AndroidStudio中使用SVN
AndroidStudio中使用SVN提交项目 1.安装SVN,我选择使用TortoiseSVN-1.8.7.25475-x64-svn-1.8.9.msi(安装文件地址如下:http://downl ...
- vue-cli下配置项目访问ip和服务器ip
一.配置项目访问ip,让本次代码支持localhost以外的ip地址访问模式:修改里的host配置,代码如下. 修改完记得 "npm run dev"重启服务. 二.在本地架设服务 ...
- 【HEVC帧间预测论文】P1.2 An Efficient Inter Mode Decision Approach for H.264 Video Codin
参考:An Efficient Inter Mode Decision Approach for H.264 Video Coding <HEVC标准介绍.HEVC帧间预测论文笔记>系列博 ...
- 从源码中无法看出函数所在的js脚本的解决方法
通过设置断点调试使js脚本自动出现
- JDBC性能优化篇
系统性能. 少用Metadata方法 与其它的JDBC方法相比, 由ResultSet对象生成的metadata对象的相对来说是很慢的. 应用程序应该缓存从ResultSet返回的metada ...
- http接口调用,传递json格式带双引号问题
springmvc 配置好会自动转换json格式,只要配置他转格式之前,在转次String类型就好
- 洛谷P1724 东风谷早苗
题目描述 在幻想乡,东风谷早苗是以高达控闻名的高中生宅巫女.某一天,早苗终于入手了最新款的钢达姆模型.作为最新的钢达姆,当然有了与以往不同的功能了,那就是它能够自动行走,厉害吧(好吧,我自重).早苗的 ...
- vue iview render里面 没有双向绑定 renderHeader 要序列化 反序列 一下
vue iview render里面 没有双向绑定 renderHeader 要序列化 反序列 一下 renderHeader: (h, params) => { return [ h('Rad ...