关于货币格式输入与读出“,”隔开

在做某房屋租赁系统时,曾遇到要求大笔额数字需要以###,###,###,##0.00呈现,并且以#########0.00存入。且看当时的解决方案:

1.货币输入验证:

文本框旁边放置一个正则表达式验证的控件,要求当输入的数字格式必须为: ###,###,###,##0.00或#########0.00

正则表达式控件的Validation属性只设置为:(?!^0*$)(?!^0*\.0*$)^\d{0,3}(,?\d{3})*(\.\d{1,3})?$

2.存入数据值类型:

decimal.Parse强制转换,以该类型存入数据库

model.AnnualMgtFee = decimal.Parse(this.txtAnnualMgtFee.Text);
model.AnnualRentCostall = decimal.Parse(this.txtAnnualRentCostall.Text);
model.Netareaman = decimal.Parse(this.txtNetareaman.Text);

3.取出数据值类型:

方法一:

this.txtAnnualRent.Text =Convert.ToDecimal( model.AnnualRent).ToString("N2");
this.txtAnnualMgtFee.Text = Convert.ToDecimal(model.AnnualMgtFee).ToString("N2");
this.txtAnnualRentCostall.Text = Convert.ToDecimal(model.AnnualRentCostall).ToString("N2");

方法二:

1)定义一个类AppConst.cs,在该类中定义一个常量DecimalFormat ,代码如下:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// AppConst 的摘要说明
/// </summary>
public class AppConst
{
    /// <summary>
    /// 数字格式(###,###,###,##0.00)
    /// </summary>
    //public const string DecimalFormat = "###,###,###,##0.00";
    public const string DecimalFormat = "N2";

    /// <summary>
    /// 数字格式(#########0.00)
    /// </summary>
    public const string DecimalFormat2 = "#########0.00";
}

2)  界面后台代码中,如下引用AppConst.cs类中的常量DecimalFormat ,代码如下:     

        this.txtAnnualRent.Text =Convert.ToDecimal( model.AnnualRent).ToString(AppConst.DecimalFormat);
        this.txtAnnualMgtFee.Text = Convert.ToDecimal(model.AnnualMgtFee).ToString(AppConst.DecimalFormat);
        this.txtAnnualRentCostall.Text = Convert.ToDecimal(model.AnnualRentCostall).ToString(AppConst.DecimalFormat);

 3)如果是GridView或DataGrid这一类数据源控件取出数据,可以在字段绑定的表达式做这样控制: Text='<%# DataBinder.Eval(Container,"DataItem.Contract_Cost","{0:N2}") %>'

 

 

posted @ 2009-07-06 14:53  不白活一回  阅读(297)  评论(0编辑  收藏  举报