Latest web development tutorials

Biblioteka standardowa języka C - <float.h>

krótkie wprowadzenie

C file header standardowyfloat.h Biblioteka zawiera zestaw stałych związanych z wartością zmiennoprzecinkową zależy od platformy.Stałe te są proponowane przez ANSI C, co czyni programy bardziej przenośne. Przed wyjaśnieniem tych stałych, to najlepiej wyjaśnić pływak składa się z czterech elementów w następującym składzie:

组件组件描述
S符号 ( +/- )
b指数表示的基数,2 表示二进制,10 表示十进制,16 表示十六进制,等等...
e指数,一个介于最小值e min和最大值e max之间的整数。
p精度,基数 b 的有效位数

Na podstawie powyższych czterech składników, wartość liczby zmiennoprzecinkową w następujący sposób:

zmiennoprzecinkowa = (S) pxb e

lub

zmiennoprzecinkowa = (+/-) precyzja x podstawa wykładnik

makro biblioteki

Poniższe wartości są specyficzne dla implementacji i jest określona przez #define dyrektywy, wartości te nie są niższe od wartości podanych poniżej. Proszę pamiętać, że wszystkie przypadki FLT odnosi się do typu float, DBL odnosi się do typu double, LDBL odnosi się do typu long double.

描述
FLT_ROUNDS定义浮点加法的舍入模式,它可以是下列任何一个值:
  • -1 - 无法确定

  • 0 - 趋向于零

  • 1 - 去最近的值

  • 2 - 趋向于正无穷

  • 3 - 趋向于负无穷

FLT_RADIX 2这个宏定义了指数表示的基数。基数 2 表示二进制,基数 10 表示十进制,基数 16 表示十六进制。

FLT_MANT_DIG

DBL_MANT_DIG

LDBL_MANT_DIG

这些宏定义了 FLT_RADIX 基数中的位数。

FLT_DIG 6

DBL_DIG 10

LDBL_DIG 10

这些宏定义了舍入后不会改变表示的十进制数字的最大值(基数 10)。

FLT_MIN_EXP

DBL_MIN_EXP

LDBL_MIN_EXP

这些宏定义了基数为 FLT_RADIX 时的指数的最小负整数值。

FLT_MIN_10_EXP -37

DBL_MIN_10_EXP -37

LDBL_MIN_10_EXP -37

这些宏定义了基数为 10 时的指数的最小负整数值。

FLT_MAX_EXP

DBL_MAX_EXP

LDBL_MAX_EXP

这些宏定义了基数为 FLT_RADIX 时的指数的最大整数值。

FLT_MAX_10_EXP +37

DBL_MAX_10_EXP +37

LDBL_MAX_10_EXP +37

这些宏定义了基数为 10 时的指数的最大整数值。

FLT_MAX 1E+37

DBL_MAX 1E+37

LDBL_MAX 1E+37

这些宏定义最大的有限浮点值。

FLT_EPSILON 1E-5

DBL_EPSILON 1E-9

LDBL_EPSILON 1E-9

这些宏定义了可表示的最小有效数字。

FLT_MIN 1E-37

DBL_MIN 1E-37

LDBL_MIN 1E-37

这些宏定义了最小的浮点值。

Przykłady

Poniższy przykład demonstruje użycie float.h niektórych stałych zdefiniowanych w pliku.

#include <stdio.h>
#include <float.h>

int main()
{
   printf("The maximum value of float = %.10e\n", FLT_MAX);
   printf("The minimum value of float = %.10e\n", FLT_MIN);

   printf("The number of digits in the number = %.10e\n", FLT_MANT_DIG);
}

Załóżmy, skompilować i uruchomić powyższy program, który przyniesie następujące wyniki:

The maximum value of float = 3.4028234664e+38
The minimum value of float = 1.1754943508e-38
The number of digits in the number = 7.2996655210e-312