/***
** HongShijin
** Me@HongShijin.com
** 2009-3-15 10:13:00.00000
** text/C#
***/

/// <summary>
/// 转换人民币大写
/// </summary>
/// <param name="input">数字输入</param>
  /// <returns>大写金额</returns>
public static string ToSuperRMB(object input)
{
var d = decimal.Zero;
if (input == null)
return ToSuperRMB(d);

if (input is decimal)
return ToSuperRMB((decimal)input);

if (input is double)
return ToSuperRMB(new decimal((double)input));

if (input is float)
return ToSuperRMB(new decimal((float)input));

if (input is int)
return ToSuperRMB(new decimal((int)input));

if (input is long)
return ToSuperRMB(new decimal((long)input));

if (input is uint)
return ToSuperRMB(new decimal((uint)input));

if (input is ulong)
return ToSuperRMB(new decimal((ulong)input));

if (decimal.TryParse(input.ToString(), out d))
return ToSuperRMB(d);

return input.ToString();//return ToSuperRMB(d);//
}

/// <summary>
/// 转换人民币大写
/// </summary>
/// <param name="input">数字输入</param>
  /// <returns>大写金额</returns>
public static string ToSuperRMB(ulong input)
{
return ToSuperRMB(new decimal(input));
}

/// <summary>
/// 转换人民币大写
/// </summary>
/// <param name="input">数字输入</param>
  /// <returns>大写金额</returns>
public static string ToSuperRMB(uint input)
{
return ToSuperRMB(new decimal(input));
}

/// <summary>
/// 转换人民币大写
/// </summary>
/// <param name="input">数字输入</param>
  /// <returns>大写金额</returns>
public static string ToSuperRMB(long input)
{
return ToSuperRMB(new decimal(input));
}

/// <summary>
/// 转换人民币大写
/// </summary>
/// <param name="input">数字输入</param>
  /// <returns>大写金额</returns>
public static string ToSuperRMB(int[] input)
{
return ToSuperRMB(new decimal(input));
}

/// <summary>
/// 转换人民币大写
/// </summary>
/// <param name="input">数字输入</param>
  /// <returns>大写金额</returns>
public static string ToSuperRMB(int input)
{
return ToSuperRMB(new decimal(input));
}

/// <summary>
/// 转换人民币大写
/// </summary>
/// <param name="input">数字输入</param>
  /// <returns>大写金额</returns>
public static string ToSuperRMB(float input)
{
return ToSuperRMB(new decimal(input));
}

/// <summary>
/// 转换人民币大写
/// </summary>
/// <param name="input">数字输入</param>
  /// <returns>大写金额</returns>
public static string ToSuperRMB(double input)
{
return ToSuperRMB(new decimal(input));
}

/// <summary>
/// 转换人民币大写
/// </summary>
/// <param name="input">数字输入</param>
  /// <returns>大写金额</returns>
public static string ToSuperRMB(decimal input)
{
var n = "零壹贰叁肆伍陆柒捌玖";
var u = "仟佰拾京仟佰拾吉仟佰拾兆仟佰拾億仟佰拾萬仟佰拾圆角分厘毫";//"仟佰拾京仟佰拾吉仟佰拾兆仟佰拾亿仟佰拾万仟佰拾圆角分厘毫"
var m = input;
if (m > decimal.Zero)
m *= 10000M;
else
m *= -10000M;
var t = m.ToString("0");
if (t == "0")
return "零圆整";

if (t.Length > u.Length)
throw new ArgumentOutOfRangeException();

u = u.Substring(u.Length - t.Length);
for (var i = t.Length - 1; i >= 0; i--)
t = t.Remove(i) + n[t[i] - '0'] + u[i] + t.Substring(i + 1);
t = Regex.Replace(t, "零+[^圆萬億兆吉京]", "零", RegexOptions.Compiled); //t = "壹仟零佰零拾零京叁仟零佰伍拾贰吉零仟零佰零拾零兆叁仟伍佰贰拾零億肆仟零佰贰拾零萬零仟零佰零拾伍圆壹角零分零厘伍毫";
t = Regex.Replace(t, "零{2,}", "零", RegexOptions.Compiled); //t = "壹仟零零零京叁仟零伍拾贰吉零零零零兆叁仟伍佰贰拾零億肆仟零贰拾零萬零零零伍圆壹角零零伍毫"
t = Regex.Replace(t, "零+([圆萬億兆吉京])", "$1", RegexOptions.Compiled); //t = "壹仟零京叁仟零伍拾贰吉零兆叁仟伍佰贰拾零億肆仟零贰拾零萬零伍圆壹角零伍毫"
t = Regex.Replace(t, "([萬億兆吉京])[萬億兆吉京]+", "$1", RegexOptions.Compiled); //t = "壹仟京叁仟零伍拾贰吉兆叁仟伍佰贰拾億肆仟零贰拾萬零伍圆壹角零伍毫"
t = Regex.Replace(t, "^[萬億兆吉京]+", string.Empty, RegexOptions.Compiled); //"壹仟京叁仟零伍拾贰吉叁仟伍佰贰拾億肆仟零贰拾萬零伍圆壹角零伍毫"
if (t[0] == '零')
t = t.Substring(1);
if (t[t.Length - 1] == '零')
t = t.Remove(t.Length - 1);
if (t[t.Length - 1] == '圆')
t = t + "整";
if (input >= decimal.Zero)
return t;

return "負" + t;////负
}

NET 人民币大写的更多相关文章

  1. 返回人民币大写方式(num2rmb)

    CREATE OR REPLACE FUNCTION num2rmb(Pi_MONEY NVARCHAR2) RETURN NVARCHAR2 IS -- PURPOSE :返回人民币大写方式 v_N ...

  2. FastReport调用Delphi中的人民币大写转换自定义函数

    FastReport调用Delphi中的人民币大写转换自定义函数   FastReport调用Delphi中的人民币大写转换自定义函数 function TJzpzEdit1.MoneyCn(mmje ...

  3. sql 数字转人民币大写函数(两种方法)

    ,)) returns @rmb table( 亿 ) ,仟万 ) ,佰万 ) ,拾万 ) ,万 ) ,仟 ) ,佰 ) ,拾 ) ,元 ) ,角 ) ,分 )) as begin insert in ...

  4. Java实现人民币大写精讲

    想要实现人民币大写,在发票等场景中使用?? 1234.56显示为:壹仟贰佰叁拾肆元伍角陆分,那就往下看看吧! 本程序可以实现 0 到 9999 9999 9999.994 以内的人民币大写转换,精确到 ...

  5. ORACLE数字转换人民币大写

    ORACLE 数字转换人民币大写     示例.   数字                    :183066999230.68 人民币大写        :壹仟捌佰参拾亿陆仟陆佰玖拾玖万玖仟贰佰参 ...

  6. Java实现人民币大写代码解析

    想要实现人民币大写,在发票等场景中使用?? 1234.56显示为:壹仟贰佰叁拾肆元伍角陆分,那就往下看看吧! 本程序可以实现 0 到 9999 9999 9999.994 以内的人民币大写转换,精确到 ...

  7. JS 人民币大写

    /***** HongShijin** Me@HongShijin.com** 2014-10-15 9:13:00.00000** text/javascript***/ (function ($) ...

  8. js 将数字转换成人民币大写的方法

    //将数字转换成人民币大写的方法 var digitUppercase = function (n) { var fraction = ['角', '分']; var digit = [ '零', ' ...

  9. 数字转人民币大写(SQL SERVER)

    --数字转人民币大写NumToRMB ---新建方法create  FUNCTION dbo.NumToRMB (@num numeric(14,5))   RETURNS varchar(100) ...

随机推荐

  1. 体验下Xcode5与ios7

    IOS7的最新更新. 1.自主选择默认地图应用苹果在iOS 6中移除了谷歌地图,使用了自家研发的苹果地图.不得不说,这款自带的地图应用可以说烂到了一定的程度,自发布之后便问题不断.正因如此,苹果应该允 ...

  2. Opencv关于滑动条bar操作的实例

    代码如下: //////////////////////////////////////////////////////////////////////// // // 该程序产生一个窗口10s 如果 ...

  3. PyCharm设置字体

    pycharm 是很好的一个IDE,就是默认字体太小了,真的太小了,改字体的地方很隐晦.找了半天,贴图: 然后发现size 不能更改,所以,点击save as创建一个方案,然后修改自己的方案.这个时候 ...

  4. C#中Abstract和Virtual 【转】

    http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html 在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在 ...

  5. 微信朋友圈分享js代码最新2015年无错版

    最近微信对分享做了进一步规范,导致很多分享都不起作用了,今天跟大家分享,2015年最新修无错的! 以下是主要微信分享页面代码:(其中红色部分主要懒友自己填写自己哈.) <?php require ...

  6. R-plot

    颜色.图例和线 在散点图中添加信息.图例以及回归线. 模拟数据 #模拟数据 dat <- data.frame(X = runif(100,-2,2),T1 = gl(n=4,k=25,labe ...

  7. ASPNET程序中常用的三十三种代码

    1. 打开新的窗口并传送参数 response.write("<script>window.open(’*.aspx?id="+this.DropDownList1.S ...

  8. HTML8表单验证

    表单验证: 一.非空验证: 1.内容是不是空的. 判断值的长度是不是0.length属性.压缩空格的函数.   2.内容是不是改变了.   二.对比验证: 1.验证两个控件值的关系(相同,大小)   ...

  9. mysql学习(十二)内置函数

    常用的内置函数,常用select\ 字符串函数 contat('' , '', .....) //连接字符串 select concat(name, ' age is ', age) from per ...

  10. 以Ajax的方式访问数据库

    一:以Ajax的方式显示数据 我们都知道,如果用Ajax程序去加载一个动态页,则加载的实际上是这个动态页执行完毕后生成的静态HTML代码字符串. 1.以原有的格式显示数据 <?php heade ...