声明:我是一名新的C++程序员,但我已经阅读了很多关于浮点数等的知识,以及某些数字如何无法正确存储以及所有的。在我的许多Google搜索中,我一直无法找到真正专门针对此问题的任何内容。在C++中从一个double到一个字符串连接时丢失精度
好吧,所以基本上是什么标题说 - 我有一个问题,当我连接两个双变量到一个字符串,他们在每个变量数的末尾下降一个小数。我在做的是让用户输入两个数字(存储为双打)进行一些计算,但后来在程序中我需要两个数字在一个字符串中,以便我可以在数组中搜索它们(我已经加载了值)。当这些数字串联到一个字符串中时,它们会丢掉它们两个值中的最后一个数字,这会抛出搜索结果(我做了一些调试以发现此问题)。
这里是我的变量读什么后出任右它们是由用户指定的值:
USER1 = 43.5803481
用户2 = -116.7406331
到目前为止这些好值,这里是它连接后的样子:
concat = 43.580348 -116.740633
正如你所看到的,我在每个变量的末端丢失了1。
下面是我使用来连接它们的代码:
concat = to_string(user1) + " " + to_string(user2);
我已经声明的变量CONCAT作为字符串和一切。
所以我想我想知道:
(1)为什么这样做?
(见编辑)
(2)我该如何解决? (有没有更好的方法来做到这一点?等)
在此先感谢您看!
编辑:我现在明白,to_string
只有6位小数,但其他网页上的解决方案似乎没有解决我的问题。
可能重复的[设置为std ::精度为\转换浮点值时_string](http://stackoverflow.com/questions/16605967/set-precision-of-stdto-string-when-转换浮点值) – OldProgrammer 2015-04-05 04:28:52
谢谢,我不知道to_string()只有6位小数。现在我只需要弄清楚链接中的代码实际上意味着什么。 – Oryn 2015-04-05 04:44:05
[std :: to \ _string(double)]的精度可能重复](http://stackoverflow.com/questions/14520309/the-precision-of-stdto-stringdouble) – 2015-04-05 06:25:52