命名空间
变体
操作

float_t, double_t

来自 cppreference.cn
< c‎ | 数值‎ | 数学
 
 
 
常用数学函数
函数
基本操作
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大值/最小值操作
(C99)
(C99)
指数函数
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
幂函数
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
三角函数和双曲函数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
最近整数浮点数
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮点数操作
(C99)(C99)
(C99)(C23)
(C99)
窄化操作
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子与量子指数
十进制重新编码函数
总序和载荷函数
分类
(C99)
(C99)
(C99)
(C23)
误差函数和伽马函数
(C99)
(C99)
(C99)
(C99)
类型
float_tdouble_t
(C99)(C99)
宏常量
特殊浮点值
(C99)(C23)
参数和返回值
错误处理
快速操作指示符
 
定义于头文件 <math.h>
typedef /* implementation-defined */ float_t
(C99 起)
typedef /* implementation-defined */ double_t
(C99 起)

类型 float_tdouble_t 是浮点类型,它们的宽度至少分别与 floatdouble 相同,并且 double_t 的宽度至少与 float_t 相同。 FLT_EVAL_METHOD 的值决定了 float_tdouble_t 的类型。

FLT_EVAL_METHOD 解释
0 float_tdouble_t 分别等价于 floatdouble
1 float_tdouble_t 都等价于 double
2 float_tdouble_t 都等价于 long double
其他 float_tdouble_t 都由实现定义

[编辑] 示例

#include <float.h>
#include <math.h>
#include <stdio.h>
 
#define SHOW(expr) printf("%s = %d\n", #expr, (int)(expr))
 
int main()
{
    SHOW(FLT_EVAL_METHOD);
    SHOW(sizeof(float));
    SHOW(sizeof(float_t));
    SHOW(sizeof(double));
    SHOW(sizeof(double_t));
}

可能的输出

FLT_EVAL_METHOD = 1
sizeof(float) = 4
sizeof(float_t) = 8
sizeof(double) = 8
sizeof(double_t) = 8

[编辑] 参考

  • C23 标准 (ISO/IEC 9899:2024)
  • 7.12 数学 <math.h> (p: 待定)
  • C17 标准 (ISO/IEC 9899:2018)
  • 7.12 数学 <math.h> (p: 待定)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.12 数学 <math.h> (p: 231)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.12 数学 <math.h> (p: 212)

[编辑] 参阅

指定所有算术运算的精度
(宏常量)