编辑3:这个问题已经回答。我多次计算错误并犯了一个大错误,因此没有意识到代码库本身很好
关于stackoverflow的第一个问题。
所以我正在运行模拟,在我的代码中我需要对资源的折旧进行建模,这很简单,减少了 25%。简单的。但是由于某种原因,每次当我尝试将值更改为 2D 数组中保存的原始值的 75% 时,它都会将其更改为 100,而不是任何数字。当我打印出我设置为等于的值时,它给了我正确的数字,但是当我实际设置它时,它只是变为 100。任何提示或帮助将不胜感激。
顺便说一句,这些数组是 int 类型的全局和受保护的二维数组。
代码片段:所以在这个代码片段中,当实际赋值被注释掉时,System.out.println 打印出正确的值,但当实际赋值时它变为 100。
我已经尝试了一些选项,但仍在尝试修复它,但我很想知道是否有其他人之前遇到过类似的问题?
编辑:我已经更新了数组的声明和数组被更改的唯一其他函数。在资源提取函数之后数组值很好,但是在消耗函数期间,当我尝试分配一个新的值 75% 时,一切都会出错目前持有的任何东西。
因此,例如,数组中的数字是 4000,那么在消耗之后应该是 3000,但是那一行只打印出 72 而不是 3000,因为 72 是截断后 97 的 3/4。但是,当赋值被注释掉并运行时,所有数字都会正确地递增到任何数字,例如 4869。
编辑2:
我已经发布了我的全部代码。模拟一遍又一遍地运行。因此,提取和消耗一遍又一遍。我已经完成了数学计算,我发布的错误仍然存在,并且只会根据代理和资源的数量而变化。
前任。代理 = 24 和资源 = 24,然后经过几次迭代后,由于某种原因,它的上限为 24,当代理 = 8 和资源 = 8 时,它的上限为 72。我做了数学运算,因为公式的工作原理,他们不应该在每次迭代中获得相同的数量,直到达到像 10000 这样的非常高的数字。
抱歉所有的冗长,我感谢到目前为止我得到的所有帮助!