【发布时间】:2015-03-18 22:23:00
【问题描述】:
我制作了一个非常简单的程序,可以将零钱(硬币、硬币、镍币和便士)分发给用户。它以用户输入现金的方式分配回相同的金额,价值。在我输入之前它表现良好:0.59 因此,在稍微修改程序后,我能够解决这个问题。但是,我仍然不明白我到底做了什么来修复它......
int change_owed(浮动金额) {
int change, coins;
change = coins = 0;
change = (float)(amount * 1000000.0);
change /= 10000;
任何解释都会很棒。另外,如果已经问过这个问题,我深表歉意。在搜索stackoverflow时,我找不到解决方案。
【问题讨论】:
-
我们需要比这更多的代码,变化和数量是什么类型?
-
演员可能在这个代码示例中没有做任何事情,但这里的背景可能会有所帮助:stackoverflow.com/questions/2100490/…
-
change 为整数,amount 为浮点数。
-
那么请更新问题以说明这一点,最好显示
change和amount的实际声明。 -
处理金钱的程序永远不能使用浮点值。浮点数(和双精度数)用于更高的数学,而不是加减需要精确的数量。