I am learning C++, working through the books recommended by this website. I'm trying to code Exercise 6-3 of Practical C++ Programming. Here's the problem:
Given an amount less than $1.00, compute the number of quarters, dimes, nickels, and pennies needed.
Here's my code:
For some reason, it's not calculating the right amount. For example, if I run the program and put in 0.35, when it gets to this partCode:#include <iostream> int main(){ float money; // amount of money int quarters, dimes, nickels, pennies; // Stores the amount of each coin needed. while (true){ std::cout<< "Enter a non-negative amount of money " // Prompt user for money << "less than $1.00, or -1 to stop: "; // amount std::cin >> money; if (money == -1) // Loop until user enters -1 break; if (money < -1 || money >= 1.0) // Start loop over if money continue; // amount is invalid. std::cout << "$" << money << " in change is "; quarters = (money / 0.25); // Stores the amount of quarters needed, then subtracts money -= (quarters * 0.25); // that amount in cents from the money total. dimes = (money / 0.1); // Stores the amount of dimes needed, then subtracts money -= (dimes * 0.1); // that amount in cents from the money total. nickels = (money / 0.05); // Stores the amount of nickels needed, then subtracts money -= (nickels * 0.05); // that amount in cents from the money total. pennies = (money * 100); // Money is in cents, so it is multiplied by 100 to convert // it to the amount of pennies needed. std::cout << quarters << " quarters, " << dimes << " dimes, " << nickels << " nickels, " << " and " << pennies << " pennies.\n"; } return 0; }, I know money is equal to 0.1 at that point, but dimes is not being set equal to 1. I put inCode:dimes = (money / 0.1)just to make sure that money equals 0.1 at that point, which it does. I also triedCode:std::cout << money;to see that money, when it is 0.1, divided by 0.1 does indeed equal 1, which it does. But it won't set dimes equal to 1. If I run the program at 0.36, it calculates everything right. What am I doing wrong?Code:std::cout << (money / 0.1)



LinkBack URL
About LinkBacks



