C#显示输出错误,但基于它的其他输出是正确的

时间:2017-10-04 03:31:34

标签: c#

我在“扣除”的最后一行遇到问题。 这是一个计算员工净工资的计划。每个输出都是老师想要的,除了扣除。当它运行时显示“292.22”而不是“368.72”,输入为:小时= 48.55,速率= 25.50,依赖= 3。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Program5
{
    class NetPay
        {
        static double hours, rate, dependents;
        const double TAXRATE = .23;
        const double DEPENDENTS = 25.50;

        static void Main(string[] args)
        {
            GetInput();
            Calculations();
        }
        static void GetInput()
        {
            Console.Write("Enter hours worked: ");
            hours = double.Parse(Console.ReadLine());

            Console.Write("Enter hourly rate: ");
            rate = double.Parse(Console.ReadLine());

            Console.Write("Enter number of dependents: ");
            dependents = double.Parse(Console.ReadLine());
        }

        static void Calculations()
        {
            double gross, netPay, deduction;

            Console.WriteLine("\nHourse Worked:\t\t\t\t\t   {0:c}", hours);
            Console.WriteLine("Hourly Rate:\t\t\t\t\t   {0:c}", rate);
            Console.WriteLine("Dependents:\t\t\t\t\t\t{0}", dependents);

            if (hours > 40)
                gross = Math.Round((((hours - 40) * 1.5 ) * rate) + (40 *         rate), 2);    

            else
                gross = Math.Round(hours * rate, 2);            

            Console.WriteLine("Gross Pay:\t\t\t\t\t{0:c}", gross);

            dependents = Math.Round(dependents * DEPENDENTS, 2);
            gross = gross - dependents;

            deduction = Math.Round(gross * TAXRATE, 2);
            Console.WriteLine("Deductions:\t\t\t\t\t{0:c}", deduction);

            Console.WriteLine("\t\t\t\t\t\t---------");

            netPay = gross - deduction;
            Console.WriteLine("Net Pay:\t\t\t\t\t{0:c}", netPay);
        }
    }
}

0 个答案:

没有答案