Pustaka Standard C - <float.h>


Pengenalan

Fail pengepala float.h perpustakaan standard C mengandungi set pemalar bergantung pada platform yang berkaitan dengan nilai titik terapung. Pemalar ini diperkenalkan oleh ANSI C, yang menjadikan program lebih mudah alih. Sebelum menerangkan pemalar ini, sebaiknya fahami bahawa nombor titik terapung terdiri daripada empat elemen berikut:

< tr>< td>e
KomponenPerihalan komponen
SSimbol ( +/- )
bAsas bagi eksponen, 2 mewakili perduaan, 10 mewakili perpuluhan, 16 mewakili perenambelasan, dsb...
Eksponen, satu antara nilai minimum
组件组件描述
S符号 ( +/- )
b指数表示的基数,2 表示二进制,10 表示十进制,16 表示十六进制,等等...
e指数,一个介于最小值 emin 和最大值 emax 之间的整数。
p精度,基数 b 的有效位数
emin<🎜> dan nilai maksimum<🎜>emaks Integer antara <🎜>.
pKetepatan, bilangan digit bererti dalam asas b

Berdasarkan 4 komponen di atas, nilai nombor titik terapung adalah seperti berikut:

titik terapung = ( S ) p x be

atau

titik terapung = (+/-) ketepatan x asaseksponen

makro perpustakaan

Nilai berikut adalah khusus Pelaksanaan dan ditakrifkan melalui arahan #define, nilai ini tidak boleh lebih rendah daripada nilai yang diberikan di bawah. Ambil perhatian bahawa semua kejadian FLT merujuk kepada apungan jenis, DBL untuk menaip dua kali, dan LDBL untuk menaip dua kali ganda.

MakroPenerangan
FLT_ROUNDSTentukan mod pembundaran penambahan titik terapung, yang boleh menjadi mana-mana nilai berikut:
  • 描述
    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

    这些宏定义了最小的浮点值。
    -1 - Tidak dapat menentukan

  • 0 - Melangkah ke arah sifar

  • 1 - Pergi ke nilai terdekat

  • 2 - cenderung kepada infiniti positif
  • <🎜>3 - cenderung kepada infiniti negatif<🎜>
FLT_RADIX 2Makro ini mentakrifkan asas perwakilan eksponen. Asas 2 mewakili perduaan, asas 10 mewakili perpuluhan, dan asas 16 mewakili perenambelasan.
<🎜>FLT_MANT_DIG<🎜><🎜>DBL_MANT_DIG<🎜><🎜>LDBL_MANT_DIG<🎜>Makro ini mentakrifkan nombor asas FLT_RADIX bagi digit.
<🎜>FLT_DIG 6<🎜><🎜>DBL_DIG 10<🎜><🎜>LDBL_DIG 10<🎜>Makro ini menentukan pembundaran Masuk tidak mengubah nilai maksimum nombor perpuluhan yang diwakili (asas 10).
<🎜>FLT_MIN_EXP<🎜><🎜>DBL_MIN_EXP<🎜><🎜>LDBL_MIN_EXP<🎜>Makro ini menentukan apabila pangkalannya ialah FLT_RADIX Nilai integer negatif terkecil bagi eksponen.
<🎜>FLT_MIN_10_EXP -37<🎜><🎜>DBL_MIN_10_EXP -37<🎜><🎜>LDBL_MIN_10_EXP -37<🎜>Makro ini Mentakrifkan nilai integer negatif terkecil untuk eksponen dalam asas 10.
<🎜>FLT_MAX_EXP<🎜><🎜>DBL_MAX_EXP<🎜><🎜>LDBL_MAX_EXP<🎜>Makro ini menentukan apabila pangkalannya ialah FLT_RADIX Nilai integer maksimum bagi eksponen.
<🎜>FLT_MAX_10_EXP +37<🎜><🎜>DBL_MAX_10_EXP +37<🎜><🎜>LDBL_MAX_10_EXP +37<🎜>Makro ini Mentakrifkan nilai integer maksimum eksponen dalam asas 10.
<🎜>FLT_MAX 1E+37<🎜><🎜>DBL_MAX 1E+37<🎜><🎜>LDBL_MAX 1E+37<🎜>Makro ini mentakrifkan nilai titik terapung terhingga terbesar.
<🎜>FLT_EPSILON 1E-5<🎜><🎜>DBL_EPSILON 1E-9<🎜><🎜>LDBL_EPSILON 1E-9<🎜>Makro ini mentakrifkan nombor bererti terkecil yang boleh diwakili.
<🎜>FLT_MIN 1E-37<🎜><🎜>DBL_MIN 1E-37<🎜><🎜>LDBL_MIN 1E-37<🎜>Makro ini menentukan nilai titik terapung minimum.
<🎜>Contoh<🎜><🎜>Contoh berikut menunjukkan penggunaan beberapa pemalar yang ditakrifkan dalam fail float.h. <🎜>
#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);}
<🎜> Mari kita susun dan jalankan program di atas, yang akan menghasilkan keputusan berikut: <🎜>
The maximum value of float = 3.4028234664e+38The minimum value of float = 1.1754943508e-38The number of digits in the number = 7.2996655210e-312
<🎜>