• 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;
    }
    

      运行结果:

  • 相关阅读:
    Python 从入门到实践
    Python 斐波那契数列
    Python 纸牌游戏
    Python hangman小游戏
    BC #49 1001 Untitled
    BC#50 1003 The mook jong
    BC #50 1001 Distribution money
    vector
    stack
    queue
  • 原文地址:https://www.cnblogs.com/areful/p/11583777.html
Copyright © 2020-2023  润新知