一道面试题(把数字货币表示转换为大写表示,如把123.45转换为壹百贰拾叁元肆角伍分 )

[ASP代码]

Response.Write(CBMoney(12345.67))

function CBMoney(num)
    if inStr(num,".")>0 then
        arrNum=split(num,".")
     zNum=arrNum(0)
     xNum=arrNum(1)
  hasDot=true
 else
     zNum=num
 end ifss
 BMoney="零,壹,贰,叁,肆,伍,陆,柒,捌,玖,拾"
    arrBMoney=split(BMoney,",")
    zMUnit="万,千,百,十,元"
 zlenNum=len(znum)
 zMUnit=right(Replace(zMUnit,",",""),zlenNum)
 dim newZUnit
 for i=1 to len(zMUnit)
     newZUnit=newZUnit&mid(zMUnit,i,1)&","
 next
 zMUnit=left(newZUnit,len(newZUnit)-1)
    arrZMUnit=split(zMUnit,",")
    xMUnit="角,分"
    arrXMUnit=split(xMUnit,",")
 dim strBMoney
 for i=1 to zlenNum
      nChar=CInt(mid(znum,i,1))
   strBMoney=strBMoney&arrBMoney(nChar)&"<b>"&arrZMUnit(i-1)&"</b>"
 next
 if hasDot then
     xlenNum=len(xnum)
     for i=1 to xlenNum
         nChar=CInt(mid(xnum,i,1))
      strBMoney=strBMoney&arrBMoney(nChar)&"<b>"&arrXMUnit(i-1)&"</b>"
     next
 end if
 CBMoney=strBMoney
end function

[ASP.NET(C#)]

说明:CMoney.aspx页面省略,该页面有主要有三个Web Control控件,TextBoxt (id=txtNum),Button,Label(id=lblRet)

  文件名:CMoney.aspx.cs(CBMoney为主要函数)

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace suanFa
{
 /// <summary>
 /// WebForm1 的摘要说明。
 /// </summary>
 public class WebForm1 : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.Label Label1;
  protected System.Web.UI.WebControls.Label Label2;
  protected System.Web.UI.WebControls.Button Button1;
  protected System.Web.UI.WebControls.Label lblRet;
  protected System.Web.UI.WebControls.TextBox txtNum;
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.Button1.Click += new System.EventHandler(this.Button1_Click);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  private void Button1_Click(object sender, System.EventArgs e)
  {
   string myNum=txtNum.Text;
   lblRet.Visible=true;
   //lblRet.ForeColor="#ff0000";
   lblRet.Text="结果:"+CBMoney(myNum);
  }
  public string CBMoney(string num)
  {
   string zNum="",xNum="";
   int dPos=num.IndexOf(".");
   if (dPos>0)
   {
            zNum=num.Substring(0,dPos);
   xNum=num.Substring(dPos+1);
   }else
    zNum=num;
   string[] ArrMoney=new string[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖","拾"};
   string[] ArrUnit=new string[]{"万","千","百","拾","元"};
   string[] ArrXUnit=new string[]{"角","分"};
   int lenZNum=zNum.Length;
   string[] nArrUnit=new string[lenZNum];
   int j=0;
   for(int i=ArrUnit.Length-lenZNum;i<ArrUnit.Length;i++){
       nArrUnit[j]=ArrUnit[i];
    j++;
   }
   string strMoney="";
   for(int i=0;i<zNum.Length;i++)
   {
    //char[] arrChar=num.ToCharArray();
    string nChar=zNum.Substring(i,1);
    strMoney=strMoney+ArrMoney[Int32.Parse(nChar)]+"<b>"+nArrUnit[i]+"</b>";
   }
   if(dPos>0)
   {
    for(int i=0;i<xNum.Length;i++)
    {
     string nChar=xNum.Substring(i,1);
     strMoney=strMoney+ArrMoney[Int32.Parse(nChar)]+"<b>"+ArrXUnit[i]+"</b>";
    }
   }
   return strMoney;
  }
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值