0

我想在java中转换的公式是

超限现金存款费用 = [(输入 $ 现金存款)-(计划中包含的 $ 现金存款)] / 1000 *(价格/每额外存入 $1000)

我正在编写的代码是

int inputCash = 50;
int cashDepsitFromPlan = 40;
int cashDepositOverLimitFee = 2.5;

cashDepositOverLimit = (double) ((inputCash -cashDepsitFromPlan) / 1000) * ???;

我如何找到???(价格/每多存 1000 美元)

4

2 回答 2

2

如果您使用浮点数,您可能需要重新考虑使用int数据类型。

首先,这将引起各种悲伤:

int cashDepositOverLimitFee = 2.5;

你最好double什么都用。

在此处查找未知变量方面,这是特定于您的业务规则的内容,此处未显示。

我冒昧地猜测这个price/$1000数字与您的变量密切相关,cashDepositOverLimitFee例如每多出 1000 美元就是 2.50 美元。

这将使等式:

                       inputCash - cashDepsitFromPlan
cashDepositOverLimit = ------------------------------ * cashDepositOverLimitFee
                                   1000

which makes sense. The first term on the right hand side is the number of excess $1000 lots you've deposited over and above the plan. You would multiply that by a fee rate (like $2.50 or 2.5%) to get the actual fee.

However, as stated, we can't tell whether it's $2.50 or 2.5% based on what we've seen. You'll have to go back to the business to be certain.

于 2013-04-17T04:02:55.100 回答
1

你必须以代数方式操纵方程来解决这个问题。

cashDepositOverLimitFee = (double) ((inputCash -cashDepsitFromPlan) / 1000) * ???
cashDepositOverLimitFee*1000 = (double) (inputCash -cashDepsitFromPlan) * ???
(cashDepositOverLimitFee*1000) / (double) (inputCash -cashDepsitFromPlan) = ???
??? = (cashDepositOverLimitFee*1000) / (double) (inputCash -cashDepsitFromPlan)

请注意,(double)强制转换必须保留以确保浮点结果。

于 2013-04-17T04:03:36.677 回答