当前位置:  开发笔记 > 编程语言 > 正文

需要帮助来了解字符串的错误

如何解决《需要帮助来了解字符串的错误》经验,为你挑选了1个好方法。

在c ++中我们std::to_string将int/float/double转换为字符串.所以,为了测试我对模板的理解,我尝试了下面的代码:

#include "iostream"
#include "sstream"
#include "string"
using std::cout;

template 
std::string getString(const T& data){
    std::stringstream ss;
    cout << '\n' << data << '\n';
    ss << data;
    std::string s;
    ss >> s;
    return s;
}

int main(int argc , char** argv){
    cout << getString(1.0000011);
    cout <<' '<

然而,输出没有意义,to_string给我1.0000011,而getString得到1并给我1.因为我使用模板也不应该getString得到1.0000011并给我1.0000011?



1> Chris Vig..:

您可以std::setprecision标题中使用来设置std::stringstream格式化数字数据时将使用的精度.

例如:

std::stringstream ss;
ss << std::setprecision(9) << data;
cout << ss.str();

将打印:

1.0000011

这是一个在线快速演示:cpp.sh/9v7xf

作为旁注,您不必创建- string和输出stringstream- 您可以用以下内容替换最后3行getString():

return ss.str();

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有