2

◾使用输出语句显示输入数据和计算结果;显示格式化为两位小数的十进制值。 这就是我遇到困难的地方!已经为这个特定项目完成了所有其他工作,例如,当您使用 4.4444 作为工资率和 10 小时数时,它应该打印出正常工资是 44.44!不是 44.444!

{
// declare variables
int Id = 0;
double hours = 0.00;
double payrate = 0.00;
char ucode = 'A';
double rpay = 0.00;
double opay = 0.00;
double gpay = 0.00;
double ftax = 0.00;
double npay = 0.00;

cout <<"\nWelcome Please Enter Employee Info";

//Input Data from keyboard
cout << "\nEnter Employee's ID ";
cin >> Id;
cout << "\nEnter Employee's Hours worked ";
cin >> hours;
cout << "\nEnter Employee's Pay Rate $";
cin >> payrate;
cout << "\nEnter Employee's union code ";
cin >> ucode;
cout << "\nEmployee's Id " << Id << "\nEmployee's Hours " << hours << "\nEmployee's Payrate " << payrate << "\nEmployee's Union Code " << ucode;
//Calculate regular pay and/or overtime pay. 
if ( hours <= 40 ){
  rpay = hours * payrate;
  gpay = rpay;
  cout<< "\nGross pay is $" << gpay;}

if ( hours > 40 ){
   rpay = 40 * payrate;
   opay = payrate * (1.5 *(hours-40));
   gpay = rpay + opay;
   cout<< "\nGross pay is $" << gpay;}
//Calculate the Gross Pay.   
if ( gpay <= 1000 ) {
   ftax = .10 * gpay;
   cout << "\nThe Federal tax due is $" << ftax;
   }

 else if ( gpay > 1000 && gpay <= 2000){
   ftax = .15 * gpay;
   cout << "\nThe Federal tax due is $" << ftax; 
     }

  else if ( gpay > 2000){
   ftax = .25 * gpay;
   cout << "\nThe Federal tax due is $" << ftax;
     }
//Calulating Netpay.     
switch ( ucode )
{
       case 'A' : cout << "\nEmployee owes $25 to Union ";
                  npay = (gpay - (ftax + 25));
                  cout << "\nEmployee's Net Pay is $" << npay;
                  break;

       case 'a' : cout << "\nEmployee owes $25 to Union ";
                  npay = (gpay - (ftax + 25));
                  cout << "\nEmployee's Net Pay is $" << npay;
                  break;

       case 'B' : cout << "\nEmployee owes $50 to Union ";
                  npay = (gpay - (ftax + 50));
                  cout << "\nEmployee's Net Pay is $" << npay;
                  break;

       case 'b' : cout << "\nEmployee owes $50 to Union ";
                  npay = (gpay - (ftax + 50));
                  cout << "\nEmployee's Net Pay is $" << npay;
                  break;

       case 'C' : cout << "\nEmployee owes $75 to Union ";
                  npay = (gpay - (ftax + 75));
                  cout << "\nEmployee's Net Pay is $" << npay;
                  break;

       case 'c' : cout << "\nEmployee owes $75 to Union ";
                  npay = (gpay - (ftax + 75));
                  cout << "\nEmployee's Net Pay is $" << npay;
                  break;          
       default:
                  cout << "\nThere is no such Union Code ";
                  npay = (gpay - (ftax + 0));
                  cout << "\nEmployee's Net Pay is $ " << npay;
                  }
       cout << "\nThank You for using our software, Please Enjoy the rest of your Day! \n ";
4

1 回答 1

6

std::setprecisionstd::fixed应该可以解决问题。

听起来你需要类似的东西:

 std::cout << std::fixed << std::setprecision(2);
于 2013-09-02T01:28:57.603 回答