Java 单利计算中的利息计算器截断错误(涉及十进制格式)

Java 单利计算中的利息计算器截断错误(涉及十进制格式),java,floating-point,double,Java,Floating Point,Double,我为一个学术项目编写了一个程序,可以进行单利和复利计算。我遇到的问题是,如果数字中的“分”不是零(即,它不显示小数点——例如,如果金额为1750.00,它将显示为1750),则计算的单利会被截断,即使我在复利和单利的两种方法中都使用了十进制格式 我已经广泛地调试了这个项目,我真的不知道到底发生了什么 该计划的相关摘录如下: double p=1.0; // just some sample values for p, r, and y. double r=2.0; double y=

我为一个学术项目编写了一个程序,可以进行单利和复利计算。我遇到的问题是,如果数字中的“分”不是零(即,它不显示小数点——例如,如果金额为1750.00,它将显示为1750),则计算的单利会被截断,即使我在复利和单利的两种方法中都使用了十进制格式

我已经广泛地调试了这个项目,我真的不知道到底发生了什么

该计划的相关摘录如下:

  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,你会过得很糟糕。符号模式#。###不仅仅是十进制格式的通用概括,不同的符号模式做不同的事情。在我的例子中,需要将#.###改为0.00,以便看到我想要的十进制数。非常感谢jpe。

请看。您可以使用类似“#.##”的模式。
#
的文档说:

Symbol  Location    Localized?  Meaning 
#   Number  Yes     Digit, zero shows as absent

你应该用
0.00

替换你的图案好的,在他们的表格上,特殊图案符号是“0位”,这是不是意味着我用0.00代替了#?我马上就去试试。我想0点应该很好。模式#,##0.00还允许数千个分隔符。