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

代码如下所示:

复制代码 代码如下:

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

时间: 2024-09-20 18:37:57

解析C++ 浮点数的格式化显示_C 语言的相关文章

浅析C语言字中的符串格式化显示_C 语言

符号                  作用 ──────────────────────────     %d              十进制有符号整数     %i              输入整数 ,可以是带前导0的八进制数或0x的十六进制数    %u              十进制无符号整数     %f              浮点数     %s              字符串     %c              单个字符     %p              指针

C语言中sscanf()函数的字符串格式化用法_C 语言

介绍      sscanf()为C语言标准库函数,用于从指定字符串中读入与指定格式相符的数据.函数原型声明在stdio.h头文件中: int sscanf(const char *str, const char *format, ...);      该函数根据参数format(格式化字符串)来转换参数str指向的字符串,转换后的结果存于对应的可变参数内.其返回值为按照指定格式转换符成功读入且赋值的可变参数数目(若发生匹配错误而部分成功,该数目会小于指定的参数数目,甚至为0).若首次成功转换或

C++中对浮点数的格式化显示

在许多应用程序领域中,都需要控制小数点后的小数位,但是浮点数对此不能提供直接的支持.怎样对程序中的浮点数据进行"整齐"地格式化呢?在此我们有一个迂回的方法,先把它们转换为字符串,格式化后以文本形式显示出来. 在日常编程中--包括对话框.关系数据库.金融程序.SMS程序及一切处理数据文件的程序,需要控制小数点后的小数位的情况非常普遍,本文中将要讲解如何用简单的方法来控制小数位,另外,还要揭开字符串及数据精度的一点点小秘密. 问题的引出 如有一个函数,其可接受一个long double参数

设计模式中的备忘录模式解析及相关C++实例应用_C 语言

备忘录模式旨在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态.在命令模式中,备忘录模式经常还经常被用来维护可以撤销(Undo)操作的状态. 类图: Originator:负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态.Originator可根据需要决定Memento存储Originator的哪些内部状态. Memento:负责存储Originator对象的内部状态,并可防止Origin

深入解析C++和JAVA的字符串_C 语言

所有的字符串类都起源于C语言的字符串,而C语言字符串则是字符的数组.C语言中是没有字符串的,只有字符数组. 谈一下C++的字符串:C++提供两种字符串的表示:C风格的字符串和标准C++引入的string类型.一般建议用string类型,但是实际情况中还是要使用老式C风格的字符串.1.C风格的字符串:C风格字符串起源于C,并在C++中得到扩展.字符串存储在一个字符数组中,例如:        const char *str = "zhangdan";(不要忘掉最后的\0)       

C语言 文件操作解析详解及实例代码_C 语言

C语言文件操作解析         在文件操作中除了打开操作以及读写操作,还有几种比较常见的操作.下面介绍一下这些操作中涉及到的函数. 一.移动位置指针的函数    rewind函数和fseek函数,这两个函数的原型是:    void rewind(FILE *fp);     将位置指针移动到文件首   int fseek(FILE *fp,long int offset,int origin);   将位置指针移动到距离origin的offset字节数的位置   其中对于fseek函数中的

深入解析C++编程中范围解析运算符的作用及使用_C 语言

范围解析运算符 :: 用于标识和消除在不同范围内使用的标识符. 语法 复制代码 代码如下: :: identifier class-name :: identifier namespace :: identifier enum class :: identifier enum struct :: identifier 备注identifier 可以是变量.函数或枚举值.具有命名空间和类以下示例显示范围解析运算符如何与命名空间和类一起使用: namespace NamespaceA{ int x;

详细解析命令行的getopt_long()函数_C 语言

头文件 #include<getopt.h> 函数原型int getopt_long(int argc,char * const argv[],const char *optstring,const struct option *longopts,int *longindex) 函数说明getopt被用来解析命令行选项参数.getopt_long支持长选项的命令行解析,函数中的参数argc和argv通常直接从main()的两个参数传递而来.optstring是选项参数组成的字符串. 字符串op

深入解析C++中的mutable关键字_C 语言

mutalbe的中文意思是"可变的,易变的",跟constant(既C++中的const)是反义词. 在C++中,mutable也是为了突破const的限制而设置的.被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中. 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的.但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰. 下面是一个小例子: 复制代码