C++ 硬币的输入量和输出量(美元和美元);美分

C++ 硬币的输入量和输出量(美元和美元);美分,c++,C++,我想知道为什么我的代码没有显示以美分为单位的金额,而只显示以美元为单位的金额。有人知道我哪里出错了吗 int dollars; int change; int quarters; int dimes; int nickels; int pennies; cout << "Enter amount of quaters" << endl; cin >> quarters; cout << "Enter amount of dimes" <&

我想知道为什么我的代码没有显示以美分为单位的金额,而只显示以美元为单位的金额。有人知道我哪里出错了吗

int dollars;
int change;
int quarters;
int dimes;
int nickels;
int pennies;

cout << "Enter amount of quaters" << endl;
cin >> quarters;

cout << "Enter amount of dimes" << endl;
cin >> dimes;

cout << "Enter amount of nickels" << endl;
cin >> nickels;

cout << "Enter amount of pennies" << endl;
cin >> pennies;

quarters = quarters * 0.25;
dimes = dimes * 0.10;
nickels = nickels * 0.05;
pennies = pennies * 0.01;

dollars = quarters + dimes + nickels + pennies;
change = dollars % quarters + dimes + nickels + pennies;

cout << "You have " << dollars << " dollar(s)" << endl;
cout << "You have " << change << " cents" << endl;

return 0;
int美元;
智力变化;
内部宿舍;
一角硬币;
国际镍币;
整数便士;
宿舍;
一角硬币;
库特镍币;
库特便士;
四分之一=四分之一*0.25;
一角=一角*0.10;
镍币=镍币*0.05;
便士=便士*0.01;
美元=四分之一硬币+一角硬币+五分镍币+便士;
零钱=美元%25美分+一角硬币+五分镍币+便士;

coutDoing
dimes=dimes*0.10
dimes
仍然是一个
int
,不能表示小数。您将希望将它们存储在
浮点中

下面是一个例子:

int dimes_int = 2;
float dimes_float = dimes_int * 0.1;
dimes_int = dimes_float;//convert the floating point number to an integer.

std::cout << dimes_float << ' ' << dimes_int << '\n';
int-dimes_-int=2;
浮点数=点数*0.1;
dimes_int=dimes_float//将浮点数转换为整数。

std::cout如果你用美分计算金额,你就更有可能在这里得到正确的答案。美元为
cents/100
,剩余的美分为
cents%100
。浮点值和货币不是朋友,它们会引起很多冲突。欢迎使用堆栈溢出!请拿着这本书读一读。关于您的问题,您必须先提取一个,因为它被认为是离题的。将浮点值分配给
int
类型的变量会丢失数据。