我正在编写一个程序,该程序从输入中获取美元金额并以文字形式显示金额。此时无法使用字符串、数组或函数,所以我用 switch 结构解决了它,尽管它不是很有效。
但是,当我将输入从浮点数转换为整数并尝试使用模数找出小数点后的数字时,我的问题就出现了;由于某种原因,它没有返回正确的数字。
所以说 321.78 提取第一个小数(或 8)它返回一个 7。我不太确定为什么会发生这种情况,以及如何修复它。
这是我第一部分的代码
float number;
int digit1, digit2, digit3, decimals, decimal1, decimal2, int_number;
cout << "Enter a dollar amount from 0-1000: ";
cin >> number;
int_number = number * 100;
digit1 = (int_number % 1000)/100; //ones
digit2 = (int_number % 10000)/1000; //tens
digit3 = (int_number % 100000)/10000; // hundreds
decimal1 = int_number % 10;
decimal2 = (int_number % 100)/10;
如果输入为 321.78,则 decimal1 应返回 8。我错过了什么吗?任何帮助,将不胜感激。