我为一个学术项目编写了一个程序,该程序执行简单的兴趣和复利计算。我遇到的问题是,如果数字没有除零以外的其他东西,那么计算的简单利息就会被截断,因为"分数" (即,它没有显示小数点 - 如果数量是例如1750.00它将显示为1750),即使我在我的方法上使用DecimalFormat进行复合和简单的兴趣!
我已经对项目进行了广泛的调试,但我真的不知道到底发生了什么。
该计划的相关摘录如下:
double p=1.0; // just some sample values for p, r, and y.
double r=2.0;
double y=3.0;
double calculatedInterest = p + (p*(r/100)*y);
String output = new String("Computed Simple Interest is: $");
output = output + new DecimalFormat("#.##").format(calculatedInterest);
return output;
我在这里有完整的程序:
[编辑]故事的道德:如果您没有读过您遇到过问题或者不了解的课程的JavaDoc,那么您将会有一个糟糕的时间。符号模式#。##不仅仅是DecimalFormat的通用catch-all,不同的符号模式做不同的事情。在我的情况下,有必要将#。##更改为0.00,以便查看我想要的十进制数。非常感谢jpe。
答案 0 :(得分:2)
查看JavaDoc of DecimalFormat。您使用“#。##”之类的模式。 #
的文档说:
Symbol Location Localized? Meaning
# Number Yes Digit, zero shows as absent
您应该使用0.00
替换您的模式。