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