【问题标题】:Convert Double to Currency after calculations计算后将双倍转换为货币
【发布时间】:2014-03-13 02:50:10
【问题描述】:

我已经完成了这段代码,但我不确定它是否会工作。但在我尝试执行程序之前,我需要做的最后一件事是将我创建的用于计算折扣到货币的双精度转换为输出到标签。这是我的代码..

   private void btnCharacteristicsContinue_Click(object sender, EventArgs e)
    {

        int intStudentClass = lstClass.SelectedIndex;
        int intParkingSpace = lstNeedsCampusParking.SelectedIndex;
        double dblParkingDiscount;
        double dblFinalParking;
        if (lstNeedsCampusParking.SelectedIndex.ToString() == ("No"))
        {
            dblFinalParking = 0;
        }
        else
        {
            switch (intStudentClass)
            {
                case 0:
                case 1:
                    dblParkingDiscount = 300;
                    if (lstLiveOnCampus.SelectedIndex.ToString() == ("Yes"))
                    {
                        dblFinalParking = dblParkingDiscount * .25;
                    }
                    else
                    {
                        dblFinalParking = dblParkingDiscount;
                    }
                    break;

                case 2:
                case 3:
                    dblParkingDiscount = 300 * .1;
                    if (lstLiveOnCampus.SelectedIndex.ToString() == ("Yes"))
                    {
                        dblFinalParking = dblParkingDiscount * .25;
                    }
                    else
                    {
                        dblFinalParking = dblParkingDiscount;
                    }
                    break;
                case 4:
                    dblParkingDiscount = 300 * .2;
                    if (lstLiveOnCampus.SelectedIndex.ToString() == ("Yes"))
                    {
                        dblFinalParking = dblParkingDiscount * .25;
                    }
                    else
                    {
                        dblFinalParking = dblParkingDiscount;
                    }
                    break;
            }
            lblCharacteristicsOutput.Text = dblFinalParking;      
        }

【问题讨论】:

  • 请注意:您可以删除字符串文字周围的大括号。 "Yes" 而不是 ("Yes")
  • 强烈建议不要在这里使用 double 开始。 Decimal 是一种更适合货币值的类型。
  • 您应该避免使用匈牙利表示法 (stackoverflow.com/questions/111933/…) - 您可能要将双精度类型更改为十进制 - 您是否也要重命名所有变量?

标签: c# double currency


【解决方案1】:

亲爱的你只需要:

lblCharacteristicsOutput.Text = dblFinalParking.ToString("C2");

它会自动将金额转换为美国标准。例如: 这 = 3401402.7 到 这=$3,401,402.70 它也将四舍五入到 2 精度,如果我们在点后有 1 个小数点,它将自动在点后返回 2 个点。

【讨论】:

    【解决方案2】:

    你的意思是这样的

    lblCharacteristicsOutput.Text = dblFinalParking.ToString("C0");  
    

    【讨论】:

      【解决方案3】:

      您应该使用System.Decimal 而不是System.Double 来表示货币,还有很多其他条目可以提供更多详细信息。这里有一些例子。

      In .net, how do I choose between a Decimal and a Double

      decimal vs double! - Which one should I use and when?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-22
        • 2017-05-18
        • 1970-01-01
        • 1970-01-01
        • 2020-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多