【问题标题】:Incorrect value when adding double to the end of a string将 double 添加到字符串末尾时的值不正确
【发布时间】:2018-03-15 20:54:03
【问题描述】:

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

代码如下:

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

第一个打印语句的输出是正确的:

8.64

但是第二个打印语句的输出总是:

0.008.64

我不知道发生了什么或为什么。

** 编辑 ** 我注意到这个网站对初学者非常不利。几个小时以来,我一直在寻找解决方案,但在没有收到我的 Uni 讲师的回复后,我需要在某个地方发帖以获得一些帮助。不是每个人都知道一切,有时初学者需要向您更有经验的开发人员提问。搜索该网站没有提供有用的结果,因此发布了该帖子。

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

【问题讨论】:

  • take the tour 了解该网站的运作方式以及此处的主题问题,并edit 相应地提出您的问题。另见:How to Debug Small Programs
  • @Joe C 我在这里问是因为我在其他任何地方都找不到答案,而且我是初学者。我从调试器获得的输出对我来说并不总是有意义的。特别是我的大学强制使用的 IDE 中的调试器。我的讲师也是零帮助。
  • 如果调试器的输出对您没有意义,那么关于此输出的问题将是一个有效的问题。
  • @Andy Turner 这很奇怪。也许这是我使用的糟糕的 IDE?

标签: java string casting double


【解决方案1】:

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

【讨论】:

  • 这也是我最初的想法。但是我已经通过调试器和打印语句检查了分配后每个变量的值。变量都完美。它立即发生在将双精度“转换”为字符串时。
猜你喜欢
  • 1970-01-01
  • 2012-08-03
  • 2021-01-04
  • 1970-01-01
  • 2013-02-02
  • 2022-08-18
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
相关资源
最近更新 更多