c++ - 在哪里以及如何将 C++ 代码格式化为小数点后两位

标签 c++

◾使用输出语句显示输入数据和计算结果;显示格式为小数点后两位的小数值。 这是我遇到困难的地方! 这个特定项目的其他一切都已经完成,例如当你使用 4.4444 支付率和 10 hours 它应该打印出正常工资是 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 ";

最佳答案

std::setprecisionstd::fixed应该做的伎俩。

听起来你需要这样的东西:

 std::cout << std::fixed << std::setprecision(2);

关于c++ - 在哪里以及如何将 C++ 代码格式化为小数点后两位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18564555/

相关文章:

c++ - 调用dll方法时如何解决访问冲突写入位置

c++ - 动态转换还是函数重载?

c++ - 尝试理解 C++14 中的 §7.2/6

C++11 vector<bool> 性能问题(附代码示例)

c++ - 如何处理构建目录中的文件?

c++ - 类型名称后的括号是否与 new 有所不同?

c++ - 使用 emplace_back 避免移动构造函数调用的最佳方法?

c++ - 它在 VS 中不起作用,但在我运行它时它在 CLion 中起作用

c++ - 从基类调用继承类的重载函数

c++ - 如何避免使用 R 值的悬空引用