【问题标题】:how to find out price/extra$1000 deposited如何找出价格/额外存入的 1000 美元
【发布时间】:2013-04-09 16:40:45
【问题描述】:

我想在java中转换的公式是

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

我写的代码是

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

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

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

【问题讨论】:

  • 这个比例听起来应该由业务规则确定。它应该在您的代码中由类变量表示。

标签: java logic business-logic


【解决方案1】:

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

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

int cashDepositOverLimitFee = 2.5;

你最好使用double 来处理所有事情。

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

我大胆猜测price/$1000 数字与您的cashDepositOverLimitFee 变量密切相关,例如每多出 1000 美元,它就是 2.50 美元。

这样就可以得出等式:

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

这是有道理的。右侧的第一项是您在计划之外存入的超过 1000 美元的手数。您可以将其乘以费用率(例如 2.50 美元或 2.5%)来获得实际费用。

但是,如上所述,根据我们所见,我们无法判断是 2.50 美元还是 2.5%。你必须回到公司才能确定。

【讨论】:

    【解决方案2】:

    您必须对方程进行代数运算才能解决这个问题。

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

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

    【讨论】:

    • 您只需要担心底线。这就是结果。我只是展示了从你的方程到解的代数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    相关资源
    最近更新 更多