C++ 返回更改程序小数c++;
我的编程课程的一个练习要求我们为出纳编写一个程序,提示到期金额和收到金额,并计算更改。它还必须计算所需的美元、25美分硬币、10美分硬币、5美分硬币和便士的数量。它在一角硬币、五分镍币和一分钱之前工作正常。这就是输出不稳定的地方。我还注意到VisualStudio将0.10读取为.10000000000000056。镍币和便士也是如此,但美元和25美分硬币却不是这样。我尝试了几种不同的方法来修复它,但没有成功。有什么建议吗C++ 返回更改程序小数c++;,c++,decimal,coin-change,C++,Decimal,Coin Change,我的编程课程的一个练习要求我们为出纳编写一个程序,提示到期金额和收到金额,并计算更改。它还必须计算所需的美元、25美分硬币、10美分硬币、5美分硬币和便士的数量。它在一角硬币、五分镍币和一分钱之前工作正常。这就是输出不稳定的地方。我还注意到VisualStudio将0.10读取为.10000000000000056。镍币和便士也是如此,但美元和25美分硬币却不是这样。我尝试了几种不同的方法来修复它,但没有成功。有什么建议吗 cout << "Amount Due. \n"; doub
cout << "Amount Due. \n";
double due;
cout << "$";
cin >> due;
cout << "Amount recieved. \n";
double rec;
cout << "$";
cin >> rec;
double change = (rec - due);
cout << "Total change= $" << change << " \n";
int dollars = change / 1.00;
change = change - dollars;
int quarters = change / .25;
change = change - quarters;
int dimes = change / .10;
change = change - dimes;
int nickels = change / .05;
change = change - nickels;
int pennies = change / .01;
change = change - pennies;
cout << "Number of dollars: " << dollars << " \n";
cout << "Number of quarters: " << quarters << " \n";
cout << "Number of dimes: " << dimes << " \n";
cout << "Number of nickels: " << nickels << " \n";
cout << "Number of pennies: " << pennies << " \n";
return 0;
到期;
cout-rec;
双重变更=(收款到期日);
库特
continue
关键字从顶部再次启动循环。
此实现可以抵抗浮点不精确。可能的
while(change > 0){
if(change >= 1.00){
dollars ++;
change -= 1;
continue;
}
if(change >= 0.25){
quarters ++;
change -= 0.25;
continue;
}
if(change >= 0.10){
dimes ++;
change -= 0.1;
continue;
}
if(change >= 0.05){
nickels ++;
change -= 0.05;
continue;
}
if(change >= 0.01){
pennies ++;
change -= 0.01;
continue;
}
}