字符串到双精度转换C ++

sha

我正在尝试将字符串转换为双精度型,但是双精度型在第三个小数点处被截断。

我的字符串看起来像这样:“ -122.39381636393”转换后,它看起来像这样:-122.394

void setLongitude(string longitude){
    this->longitude = (double)atof(longitude.c_str());

    cout << "got longitude: " << longitude << endl;
    cout << "setting longitude: " << this->longitude << endl;
}

输出示例:

got longitude: -122.39381636393
setting longitude: -122.394

我希望它保持所有小数点,有什么提示吗?

lpapp

如果我是你,我会写这段代码:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string str = "-122.39381636393";
    std::cout.precision(20);
    cout << "setting longitude: " << stod(str) << endl;
    return 0;
}

基本上,您将更改以下内容:

  • 印刷精度

  • 使用stod而不是低级操作从字符串中获取双精度字。

您可以在ideone运行时看到它

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章