如何将label.text显示或格式化为currency和double [英] How to display or format label.text to currency and double

查看:124
本文介绍了如何将label.text显示或格式化为currency和double的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个datagridview,它有鼠标点击事件处理程序,我的列Rate_Per_Day值= 602.55,然后它将显示在我的Rate_Per_Day标签中。在我的标签中显示为602.545454545455。如何将其显示为货币并加倍。谢谢



我的尝试:



<预> private void dataGridView2_MouseClick(object sender,MouseEventArgs e)
{

lbl_nameUPDATE.Text = dataGridView2.SelectedRows [0] .Cells [Name]。Value.ToString();
txtPosition2.Text = dataGridView2.SelectedRows [0] .Cells [Position]。Value.ToString();
comboBox2.Text = dataGridView2.SelectedRows [0] .Cells [Division_Unit_Section]。Value.ToString();
txtMonthly_Rate2.Text = dataGridView2.SelectedRows [0] .Cells [Monthly_Rate]。Value.ToString();
lbl_RatePerDay.Text = dataGridView2.SelectedRows [0] .Cells [Rate_Per_Day]。Value.ToString();

解决方案

< blockquote>怎么样:

 lbl_RatePerDay.Text = dataGridView2.SelectedRows [0] .Cells [Rate_Per_Day]。Value.ToString(。00); 


Value 属性返回对象,这不是没有标准的格式化选项。



快速而肮脏的修复方法是使用 string.Format

 lbl_RatePerDay.Text =  string  .Format(  {0:F2},dataGridView2.SelectedRows [ 0 ]。单元格[   Rate_Per_Day]。价值); 





A更完整的修复方法是创建自己的扩展方法:

  public   static   class  FormattingExtensions 
{
public static string ToString( this object obj, string 格式,IFormatProvider formatProvider = null
{
if (obj == null throw new NullReferenceException();

var formattable = obj as IFormattable;
if (formattable == null return obj.ToString();
return formattable.ToString(format,formatProvider);
}
}

使用:

 lbl_RatePerDay.Text = dataGridView2.SelectedRows [ 0  ] .Cells [  Rate_Per_Day]。Value.ToString(  F2); 


I have a datagridview that has on mouse click event handler where my column "Rate_Per_Day" value = 602.55 and then it will display in my Rate_Per_Day label. In my label it displays as 602.545454545455. How can I display it as a currency and double. Thanks

What I have tried:

<pre>  private void dataGridView2_MouseClick(object sender, MouseEventArgs e)
        {                  
                
                lbl_nameUPDATE.Text = dataGridView2.SelectedRows[0].Cells["Name"].Value.ToString();                    
                txtPosition2.Text = dataGridView2.SelectedRows[0].Cells["Position"].Value.ToString();
                comboBox2.Text = dataGridView2.SelectedRows[0].Cells["Division_Unit_Section"].Value.ToString();
                txtMonthly_Rate2.Text = dataGridView2.SelectedRows[0].Cells["Monthly_Rate"].Value.ToString();
                lbl_RatePerDay.Text = dataGridView2.SelectedRows[0].Cells["Rate_Per_Day"].Value.ToString();

解决方案

How about:

lbl_RatePerDay.Text = dataGridView2.SelectedRows[0].Cells["Rate_Per_Day"].Value.ToString(".00");


The Value property returns an object, which doesn't have the standard formatting options.

The quick-and-dirty fix is to use string.Format:

lbl_RatePerDay.Text = string.Format("{0:F2}", dataGridView2.SelectedRows[0].Cells["Rate_Per_Day"].Value);



A more complete fix would be to create your own extension method:

public static class FormattingExtensions
{
    public static string ToString(this object obj, string format, IFormatProvider formatProvider = null)
    {
        if (obj == null) throw new NullReferenceException();
        
        var formattable = obj as IFormattable;
        if (formattable == null) return obj.ToString();
        return formattable.ToString(format, formatProvider);
    }
}

Use:

lbl_RatePerDay.Text = dataGridView2.SelectedRows[0].Cells["Rate_Per_Day"].Value.ToString("F2");


这篇关于如何将label.text显示或格式化为currency和double的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆