关于货币格式输入与读出“,”隔开
在做某房屋租赁系统时,曾遇到要求大笔额数字需要以###,###,###,##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}") %>'