matlab - 创建一个 MATLAB 函数来确定客户在购买后应支付的零钱金额
问题描述
我在 MATLAB 中创建了一个函数,当输入物品的成本和给该物品的金额时,它会显示应付的找零金额(GB 货币)。
function C = myChange(cost, paid)
M = [50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01];
C = [];
for i = 1:size(M,2)
if (paid - cost) >= M(i)
C = [M(i); myChange(cost, paid-M(i))];
break
elseif (paid - cost) == 0
break
end
end
end
当使用整数时,该函数似乎工作得很好,
>> myChange(2, 4)
ans =
2
>> myChange(20, 32)
ans =
10
2
然而,有时,但不是所有时候,当输入中包含小数点时,变化量会少一美分(美分)
>> myChange(2, 3.25)
ans =
1.0000
0.2000
0.0200
0.0200
但是,在这种情况下,会再次显示正确的更改
>> myChange(27.57, 100)
ans =
50.0000
20.0000
2.0000
0.2000
0.2000
0.0200
0.0100
我不确定是什么导致了这种不一致,我已经玩了一段时间的功能,但现在无济于事。非常感谢任何帮助,谢谢。
解决方案
推荐阅读
- node.js - 我找不到 web3.eth.personal.newAccount
- java - 要么重新中断此方法,要么在声纳中重新抛出“InterruptedException 问题
- android - 从通道对象获取最后一条消息时的空对象引用 - Twilio 可编程聊天 Android SDK
- java - 从银行转账中获取日期
- java - 如何在我的 java bean 中获取嵌套对象的值?
- java - 在 SQlite 数据库中添加新行时,所有列表行都会在自定义列表视图中重复,然后是列表视图
- sailpoint - 账户名显示???在 Sailpoint 中,而不是帐户名称
- blueprism - 只是为了确认蓝棱镜间谍活动
- java - 如何使用 onCreate 外部的 onBackPressed 停止 onCreate 内部的处理程序?
- javascript - 如何向 taginput 元素添加验证?