C++字符串浮点数转换小demo

Posted areful

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++字符串浮点数转换小demo相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <iomanip>
#include <string>

template<typename T>
T string_to_number(const std::string &numberAsString) 
    using namespace std;
    T valor;

    stringstream stream(numberAsString);
    stream >> valor;
    if (stream.fail()) 
        throw runtime_error("string_to_number(): " + numberAsString);
    
    return valor;


template<typename T>
std::string num_to_string_with_precision(const T a_value, const int n = 6) 
    using namespace std;
    std::ostringstream out;
    std::fixed(out);
    out << std::setprecision(n) << a_value;
    return out.str();


int main() 
    using namespace std;

    try 
        std::string str_num = "1997.1009f";
        double d = string_to_number<double>(str_num);
        cout << std::fixed << std::setprecision(4);
        cout << d << endl;

//        double d2 = stod(str_num);
//        cout.width(3);
//        cout.setf(ios::fixed);
//        cout.precision(4);
//        cout << d2 << endl;

        string s = num_to_string_with_precision(d, 4);
        cout << s << endl;
     catch (exception &e) 
        std::cerr << "Error occurred, " << e.what() << std::endl;
    

    return 0;

  运行结果:

技术图片

 

以上是关于C++字符串浮点数转换小demo的主要内容,如果未能解决你的问题,请参考以下文章