我正在尝试制作点击器游戏,并且希望机器人价格像Cookie点击器游戏一样成倍增长。我试图使用Cookie Clicker的价格计算公式(http://cookieclicker.wikia.com/wiki/Building)。
if (cookies >= robotPrice) {
cookies -= robotPrice;
cps ++;
//Here is the algorithm
robotPrice = 100 * (int)Math.pow(1.15, cps);
System.out.println("robotPrice set to " + robotPrice);
}
但是当我运行程序时,我得到以下输出:
robotPrice set to 100
robotPrice set to 100
robotPrice set to 100
robotPrice set to 100
robotPrice set to 200
robotPrice set to 200
robotPrice set to 200
robotPrice set to 300
robotPrice set to 300
等等
请帮忙。
最佳答案
正如人们在评论中指出的那样,问题出在这行代码robotPrice = 100 * (int)Math.pow(1.15, cps);
您将得到1.15,将其提高到功率cps,然后切除所有小数位。那只会给你一个整数,然后乘以100。
您想将其乘以100,然后再删除所有小数。robotPrice = (int)(100 * Math.pow(1.15, cps));
关于java - 四舍五入为整数的Java Math.pow多次返回相同的数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43875457/