浮点值应该有2位小数

时间:2011-04-20 11:25:44

标签: c# c#-2.0

我得到的输出为756.4,但这等于756.40我知道但仍然希望将其保存为756.40,那么如何将其转换为必需的一个

忘记提及我的totalamount被声明为float

Amount[index] //此数量被声明为arraylist

totalAmount += float.Parse(Amount[index].ToString()); 

在循环之后完成所有附加后,我想得到所需的一个

转换示例代码

if (totalAmount.ToString().Contains("."))
        {
            string[] b = totalAmount.ToString().Split('.');
            Dollars = b[0].ToString().PadLeft(10, (char)48);
            cents = b[1].ToString().PadRight(2, (char)48).Substring(0, 2);
        }
        else
        {
            Dollars = totalAmount.ToString().PadLeft(10, (char)48);
            cents = "00";
        }

        FormattedTotalAmounts = Dollars + cents; // Here i am getting the output as i said

6 个答案:

答案 0 :(得分:5)

string totalAmountFormatted = totalAmount.ToString("F2");

这会将总金额格式化为带有两个小数位(F)的定点数(2)。有关这些格式字符串的详细信息,请参阅以下两篇MSDN文章:

答案 1 :(得分:1)

String.Format("{0:0.00}", 756.4);

答案 2 :(得分:0)

试试这个:

decimal t = 756.40m;
MessageBox.Show(t.ToString("0.00"));

答案 3 :(得分:0)

首先,我认为如果这是财务数据,您应该使用Decimal

其次,数值没有尾随空格,字符串没有。

编辑:添加了C#2.0标签 - 删除了LINQ。

Decimal total;
foreach (object oAmount in Amount)
{
   Decimal amount = (Decimal)oAmount;
   total += amount;
}
String FormattedTotalAmounts = total.ToString("G");

将“F”传递给ToString也同样有效。

编辑回复评论。

   String FormattedTotalAmounts = total.ToString("0000000000.00");

左边10 0,右边2 0。

答案 4 :(得分:0)

您可以在ToString中使用数字格式,如

SomeVar.ToString("#,##0.00")

答案 5 :(得分:0)

在您的代码中更改此

if (totalAmount.ToString().Contains("."))
    {
        string[] b = totalAmount.ToString().Split('.');
        Dollars = b[0].ToString().PadLeft(10, (char)48);
        cents = b[1].ToString().PadRight(2, (char)48).Substring(0, 2);
    }
    else
    {
        Dollars = totalAmount.ToString("F2").PadLeft(10, (char)48);//Necessary change
        cents = "00";
    }

    FormattedTotalAmounts = Dollars + cents;