首页 > 编程 > C++ > 正文

解析C++ 浮点数的格式化显示

2020-01-26 16:02:40
字体:
来源:转载
供稿:网友
代码如下所示:
复制代码 代码如下:

    #include <stdlib.h> 
    #include <string> 
    #include <windows.h> 
    #include <stdio.h> 
    #include <iostream> 
    #include <limits> 
    #include <sstream> 
    using namespace std; 

    string do_fraction(long double val, int decplaces=3) 
    { 
        ostringstream  out; 
        char DECIMAL_POINT='.'; // 欧洲用法为',' 
        int prec=numeric_limits<long double>::digits10; // 18 
        out.precision(prec);//覆盖默认精度 
        out<<val; 
        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; 
    } 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表