我正在使用C++ 11。我在文本文件中有现实世界坐标,如38.0098662, 23.7805398
,意思是2 double
变量。我使用C++解析该文件,并使用stod()
方法将strings
转换为double
。当我尝试使用count.precision(9);
打印值时,这些值似乎与文本文件中的值相同。将字符串转换为double,然后再将double转换为字符串而不丢失精度
然后,我想将这些double
值重新转换为string
格式。为此我使用to_string()
方法。但是,这似乎稍微改变了价值。例如:
38.0098662, 23.7805398 became
38.009866, 23.780540
// in fact, every number is xx.yyyyyy
我不明白为什么这很难用C++ 11做。为什么我无缘无故地失去了精确性?我怎样才能正确地做到这一点?我看到的每个问题都指向了to_string()
方法,这就是我正在使用的方法。
_“我在python中做了完全相同的事情,而且我没有看到这种行为。”_不确定Python的相关性在这里。这完全是一种不同的语言。 –