gpt4 book ai didi

c# - 按百分比递增、递减

转载 作者:太空狗 更新时间:2023-10-29 20:44:36 28 4
gpt4 key购买 nike

我会尽量用代码来解释这个问题:

double power = 5000;
//picked up 5 power ups, now need to increase power by 10% per powerup
power += 5 * (power * .10);


//later on...ran into 5 power downs need to decrease power back to initial hp
power -= 5 * (power * .10);//7500 - 3750 -- doesn't work

所以我需要的是一个可扩展的解决方案,它只使用计数就可以恢复到原始值。有什么想法吗?

最佳答案

最好的方法是使用函数。它不必看起来完全像这样,但是:

class Whatever
{

private double basePower = 5000;

public int numPowerUps = 5;

public double GetActualPower()
{
return basePower + (numPowerUps * basePower * 0.1);
}
}

当它们用完时,只需将 numPowerUps 改回 0。这样一来,它看起来就整洁多了。


旁白:
它不起作用的原因是添加然后减去百分比不起作用。例如:

1. What is 10% of 100?    --> 10
2. Add that to the 100 --> 110
3. What is 10% of 110? --> 11
4. Subtract that from 110 --> 99

您最终将始终获得原始值(value)的 99%。如果你真的想走捷径,你可以这样做:

1. What is 10% of 100?    --> 10
2. Add that to the 100 --> 110
3. What is (100/11) = 9.09090909...% of 110? --> 10
4. Subtract that from 110 --> 100

但是您可能容易受到浮点错误的影响。这样做的功能方式不仅更整洁、更清晰,而且可能更不容易出错。

关于c# - 按百分比递增、递减,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/838558/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com