小数点后只需2位数

时间:2016-08-18 07:49:34

标签: c#

我希望我的函数返回值只有2位小数。我试过以下代码:

private static double CalculateSlabTax(int nSlabStartTaxable, int nSlabEndTaxable, float fSlabRate)
{
    double dblSlabResult = 0;
    try
    {
        dblSlabResult = (nSlabStartTaxable - nSlabEndTaxable) * fSlabRate;
        dblSlabResult = Math.Round(dblSlabResult , 2);
        return dblSlabResult;
    }
    catch (Exception)
    {
        return -1;
    }
}

预期输出为:dblSlabResult = ####.## - 两位数(例如1002.05)

获得输出:例如。 dblSlabResult = 1002.1

4 个答案:

答案 0 :(得分:1)

代表使用格式。在您的情况下,小数点后面的正好两位数表示"F2"格式字符串

 double source = 1234.56789;
 // 1234.57
 var result = source.ToString("F2");  

答案 1 :(得分:0)

#字符是可选的数字占位符。转换为字符串时使用0强制执行数字:

string.Format("{0:#.##}", 1002.1) == "1002.1"
string.Format("{0:0.00}", 1002.1) == "1002.10"

在舍入floatdouble时,不要指望具体的数字位数。它们只是数字,与字符串格式无关。

答案 2 :(得分:0)

您使用了哪些输入? Math.Round应该正常工作,这表明上面的行返回一个只有1个有效数字的双精度。

答案 3 :(得分:0)

很简单。试试这个

public double UptoTwoDecimalPoints(double num)
{
    var totalCost = Convert.ToDouble(String.Format("{0:0.00}", num));
    return totalCost;
}