【发布时间】:2020-06-16 19:35:20
【问题描述】:
我还在学习,所以放轻松。
我有以下货币系统:
3 种不同的硬币,我们称它们为 Rhodonite(红色)、Daranen(金色)和 Delis(灰色)。 100 个熟食店等于 1 个 Daranen,100 个 Daranen 等于 1 个 Rhodolite。杜鹃花无限制。
所以我试图将该货币乘以两倍。这是我的功能:
public static Price multiply(Price price, double factor) {
int de = (int)Math.round(price.getDelis() * factor);
int da = (int)Math.round(price.getDaranen() * factor);
int r = (int)Math.round(price.getRhodoniten() * factor);
if ((de / 100) >= 1) {
de = de % 100;
da += de / 100;
}
if ((da / 100) >= 1) {
da = da % 100;
r += da / 100;
}
return new Price(r, da, de);
}
所以当我乘法时,如果乘法的熟食大于 100,它应该被添加到 daranen,daranen 和 rhodonites 的计数相同。
这是一个示例,乘以因子 2: 前一位是乘法前,后一位是乘法。
如您所见,乘法本身有效,但余数与下一个更高的硬币类型的加法无效。我很高兴得到任何帮助,对 java 还是很陌生。
【问题讨论】:
-
This article 有一些很棒的调试技巧,可以帮助您在自己的代码中发现这类错误。
-
请不要编辑标题,而是单击以下答案之一旁边的复选标记以接受帮助您解决问题的答案。
标签: java multiplication modulo