Java 向字符串末尾添加double时的值不正确

Java 向字符串末尾添加double时的值不正确,java,string,casting,double,Java,String,Casting,Double,我在向字符串末尾添加双精度值时遇到问题 代码如下: String priceString = "The total is £"; double price = 8.64532; System.out.println(String.format("%.2f", price)); //Correct value priceString = priceString + price; System.out.println(priceString); // Incorrect value 我也试过:

我在向字符串末尾添加双精度值时遇到问题

代码如下:

String priceString = "The total is £";
double price = 8.64532;

System.out.println(String.format("%.2f", price)); //Correct value

priceString = priceString + price;
System.out.println(priceString); // Incorrect value
我也试过:

System.out.println(priceString + String.format("%.2f", price)); //Incorrect
第一个print语句的输出是正确的:

8.64
但第二个print语句的输出总是:

0.008.64
我不知道发生了什么,也不知道为什么

**编辑**我注意到这个网站对初学者非常不友好。我已经寻找了几个小时的解决方案,在没有收到我大学讲师的回复后,我需要在某个地方发帖寻求帮助。不是每个人都知道所有的事情,有时候初学者需要问你更有经验的开发人员问题。搜索网站没有提供任何有用的结果,因此这篇文章

编辑2 代码在其他IDE中运行良好,因此问题似乎出在我的IDE上。我之所以在这里发帖,是因为我在任何地方都找不到答案,显然,我更倾向于相信问题出在我身上,而不是IDE。

这是完整的代码吗?
您可能会混淆一些变量,打印一个值为0.00的双精度值,然后连接正确的价格值。

。请查看该网站的工作原理、主题中的问题以及相应的问题。另请参见:@Joe C我之所以问这个问题,是因为我在其他任何地方都找不到答案,也因为我是个初学者。我从调试器获得的输出对我来说并不总是有意义的。特别是IDE中的调试器,我的大学强迫我使用它。我的讲师也帮不上什么忙。如果调试器的输出对你来说没有意义,那么关于这个输出的问题就是一个值得问的问题。@Andy Turner,这太奇怪了。也许我使用的是糟糕的IDE?这也是我最初的想法。但我已经通过调试器和print语句检查了赋值后每个变量的值。变量都是完美的。它会在“铸造”双精度到字符串时立即发生。