Java编程,小数数字

时间:2012-11-14 22:04:16

标签: java bluej

这是一个复利计算器,一切正常,除了我无法想出如何让我的答案只有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);
}
}

3 个答案:

答案 0 :(得分:1)

在Java中进行财务计算,特别是比较时,不应该使用浮点数或双精度数。请改用BigDecimal。 Here is an article that explains why

答案 1 :(得分:0)

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

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

答案 2 :(得分: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();
    }
}