开发者社区> 问答> 正文

如何确定以浮点数为单位的有效宽度为double的值:是否有标准定义?

是否有标准的方法来确定C或C ++中双精度数的宽度?我知道IEEE-754的double格式以53位存储有效数字,但是我想避免在代码中使用“魔术”数字。

在Linux上,该文件usr/include/ieee754.h存在,但是它使用结构中的位字段描述了格式,我无法确定其大小(在编译时)。

仅Linux解决方案是可以接受的。

展开
收起
祖安文状元 2020-01-06 15:21:42 305 0
1 条回答
写回答
取消 提交回答
  • 使用FLT_MANT_DIG和DBL_MANT_DIG,定义于<float.h>:

    #include <float.h>
    #include <stdio.h>
    
    
    #if FLT_RADIX != 2
        #error "Floating-point base is not two."
    #endif
    
    
    int main(void)
    {
        printf("There are %d bits in the significand of a float.\n",
            FLT_MANT_DIG);
        printf("There are %d bits in the significand of a double.\n",
            DBL_MANT_DIG);
    }
    
    2020-01-06 15:21:51
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载