-1

这是一个复利计算器,一切正常,除了我不知道如何让我的答案只有 2 位小数,而不是现在的长数字。请查看代码并建议我是否应该更正。非常感谢。

class InvestmentProject{
public double CompoundInterest(double InitialDeposit, double YearlyContribution, double InterestRate, int PeriodsInYr) {

double RateInDecimal = InterestRate/100;
double Value = YearlyContribution/RateInDecimal - YearlyContribution/(RateInDecimal * Math.pow(1 + RateInDecimal, PeriodsInYr));
return (InitialDeposit + Value) * Math.pow(1 + RateInDecimal, PeriodsInYr);
}
}
4

3 回答 3

1

在 Java 中进行财务计算,尤其是比较时,绝不应该使用浮点数或双精度数。改用 BigDecimal。这是一篇解释原因的文章

于 2012-11-14T22:17:45.000 回答
0

您应该使用 decimalFormat 类

import java.text.DecimalFormat;  

public class Java0605
{
    public static void main (String args[])
    {
        DecimalFormat output = new DecimalFormat("00000");
        System.out.println(output.format(1));
        System.out.println(output.format(12));
        System.out.println(output.format(123));
        System.out.println(output.format(1234));
        System.out.println(output.format(12345));
        System.out.println(output.format(123456));
        System.out.println(output.format(1234567));
        System.out.println();
    }
}
于 2012-11-14T23:00:44.993 回答
0

利用Math.round(result*100)/100;

这里有一个类似的问题(How to round a number to n decimal places in Java)概述了在 Java 中进行舍入的更多方法。

于 2012-11-14T22:06:38.723 回答