解析C++浮動小数点数のフォーマット表示

1178 ワード

コードは次のとおりです.
 
  
    #include  
    #include  
    #include  
    #include  
    #include  
    #include  
    #include  
    using namespace std; 

    string do_fraction(long double val, int decplaces=3) 
    { 
        ostringstream  out; 
        char DECIMAL_POINT='.'; // ',' 
        int prec=numeric_limits::digits10; // 18 
        out.precision(prec);//  
        out<        string str= out.str(); //  
        size_t n=str.find(DECIMAL_POINT); 
        if ((n!=string::npos) // ? 
            && (str.size()> n+decplaces)) // decplaces ? 
        { 
            str[n+decplaces]='\0';//  
        } 
        str.swap(string(str.c_str()));// nul  

        return str; 
    }