技术开发 频道

使用 C# 将数字转换成大写人民币


【IT168技术文档】

  贴段最近在项目中用到的一个函数.
  因涉及到财务,需要把数字符转换成大写人民币汉字,于是自己动手写了一个,使用的算法比较笨,各位看客不要笑啊.
  可转换数字大小在10亿以下,超过的,就无能为力了,不过大家可以自己扩充它.
/// <summary> /// 将数字转换成大写人民币 /// </summary> /// <param name="v">要转换的数字字符串</param> /// <returns>转换后的大写人民币字符串</returns> private static string Num2Char(string var) { string retval = ""; bool IsPoint = false; double v = double.Parse(var); if (v > 0) { char[] chars = v.ToString().ToCharArray(); foreach (char c in chars) { IsPoint = false; switch (c) { case '1': retval += ""; break; case '2': retval += ""; break; case '3': retval += ""; break; case '4': retval += ""; break; case '5': retval += ""; break; case '6': retval += ""; break; case '7': retval += ""; break; case '8': retval += ""; break; case '9': retval += ""; break; case '0': retval += ""; break; default: IsPoint = true; break; } if (!IsPoint) { v = v / 10; if (v > 0.001 && v < 0.009999999999) { retval += ""; } else if (v > 0.01 && v < 0.099999999999) { retval += ""; } else if (v > 0.1 && v < 0.999999999999) { retval += ""; } else if (v > 1 && v < 9.999999999999) { retval += ""; } else if (v > 10 && v < 99.999999999999) { retval += ""; } else if (v > 100 && v < 999.999999999999) { retval += ""; } else if (v > 1000 && v < 9999.999999999999) { retval += ""; } else if (v > 10000 && v < 99999.999999999999) { retval += ""; } else if (v > 100000 && v < 999999.999999999999) { retval += ""; } else if (v > 1000000 && v < 9999999.999999999999) { retval += ""; } else if (v > 10000000 && v < 99999999.999999999999) { retval += "亿"; } } } } else { retval = ""; } return retval; }
0
相关文章