gpt4 book ai didi

java - 如何在 Java 中执行贷款方程式?

转载 作者:行者123 更新时间:2023-11-30 06:34:04 24 4
gpt4 key购买 nike

我正在尝试制作一个程序,允许用户在考虑贷款时确定不同的方面。第一个等式应该确定在给定贷款金额、利率和月数的情况下,每月还款额是多少。第二个等式应该确定在给定贷款金额、利率和每月还款额的情况下,一个人必须支付多少次(或几个月)。这是我正在测试的代码,但我似乎无法获得有效输出。

    float amount = 20000;
float rate = (float) 7.5;
float months = 60;
float payment = 450;

float answer = (float) (((amount*(rate/1200))*(1+(Math.pow((rate/1200), months))))/((1+Math.pow((rate/1200), months))-1));
System.out.println(answer);

float answer2 = (log(payment/amount)-log((payment/amount)-(rate/1200)))/(log(1+(rate/1200)));
System.out.println(answer2);

对于第一个等式,我一开始一直出错,因为它希望答案是 double ,并且一直告诉我,对于我的速率变量,我无法从 double 转换为浮点,所以我不得不进行强制转换。一旦错误消失,我就会不断得到无穷大的答案。

对于第二个方程,它一直说我不能除以零。有没有人知道这个的任何解决方案。在网上看时,好像我的方程式是正确的,所以我不知道如何使它们起作用。

此外,如果有人碰巧知道确定利率的好公式,那将非常有帮助。

最佳答案

您缺少一些转换,log 应该是 Math.log。当我将所有内容都转换为 double 时(为什么你如此坚持使用 float ?使用 double 意味着你不需要将这些强制转换无处不在)我得到以下输出:

Infinity
52.23012630649508

不确定第二个值应该是多少,但这似乎没问题;没有警告也没有错误。关于第一部分,您除以零。试试这个:

System.out.println(Math.pow(rate/1200, months));

然后你会得到以下微小的数字

5.659799424266714E-133

浮点运算将导致您的分母为零,因为该值 +1 将失去精度,因此:

System.out.println(1+Math.pow(rate/1200, months)-1);

产生 0.0 并且您的分母将导致第二个结果为无穷大。

关于java - 如何在 Java 中执行贷款方程式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7471449/

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