【发布时间】:2015-04-05 16:57:27
【问题描述】:
免责声明:我是一名新的 C++ 程序员,但我已经阅读了很多关于浮点数之类的内容,以及某些数字如何无法正确存储以及所有这些内容。在我的许多 Google 搜索中,我都找不到任何真正与此问题相关的内容。
好的,基本上就是标题所说的 - 当我将两个双变量连接成一个字符串时遇到问题,它们在每个变量编号的末尾删除一位小数。我正在做的是让用户输入两个数字(存储为双精度数)进行一些计算,但稍后在程序中我需要将这两个数字放在一个字符串中,这样我就可以在一个数组中搜索它们(我已经将值加载到)。当这些数字连接成一个字符串时,它们会在两个值中删除最后一个数字,这会导致搜索失败(我做了一些调试来发现这个问题)。
这是我的变量在被用户赋值后立即读取的内容:
user1 = 43.5803481
用户2 = -116.7406331
到目前为止,这些值都很好,这是我连接它们后的样子:
concat = 43.580348 -116.740633
如您所见,我丢失了每个变量末尾的 1。
这是我用来连接它们的代码:
concat = to_string(user1) + " " + to_string(user2);
我已经将变量 concat 声明为字符串和所有内容。
所以我想我想知道:(1) 为什么要这样做?(见编辑)
(2) 我该如何解决? (有没有更好的方法来做到这一点?等等)
提前感谢您查看此内容!
编辑:我现在了解到to_string 仅包含六位小数,但已链接的其他页面上的解决方案似乎无法解决我的问题。
【问题讨论】:
-
谢谢,我不知道 to_string() 只占小数点后 6 位。现在我只需要弄清楚链接中的代码的实际含义/作用。
标签: c++ string double concatenation