Провера опсега вредности и прецизности реалних типова¶
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <float.h>
#include <limits.h>
int main(void)
{
printf("\t\tfloat\t\tdouble\t\tlong double\n");
printf("Velicina [B] :\t%llu B\t\t%llu B\t\t%llu B\n", sizeof(float), sizeof(double), sizeof(long double));
printf("Min.vrednost :\t%E\t%lE\t%LE\n", FLT_MIN, DBL_MIN, LDBL_MIN);
printf("Min.prava vr. :\t%E\t%lE\t%LE\n", FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN);
printf("Max.vrednost :\t%E\t%lE\t%LE\n", FLT_MAX, DBL_MAX, LDBL_MAX);
printf("Radiks :\t%d\t\t%d\t\t%d\n", FLT_RADIX, FLT_RADIX, FLT_RADIX);
printf("Signifikand :\t%d\t\t%d\t\t%d\n", FLT_MANT_DIG, DBL_MANT_DIG, LDBL_MANT_DIG);
printf("Min.eksponent :\t%d\t\t%d\t\t%d\n", FLT_MIN_EXP, DBL_MIN_EXP, LDBL_MIN_EXP);
printf("Max.eksponent :\t%d\t\t%d\t\t%d\n", FLT_MAX_EXP, DBL_MAX_EXP, LDBL_MAX_EXP);
printf("Broj cifara :\t%d\t\t%d\t\t%d\n", FLT_DIG, DBL_DIG, LDBL_DIG);
return 0;
}
Тест пример са GNU C и Clang C компајлерима¶
float double long double
Velicina [B] : 4 B 8 B 16 B
Min.vrednost : 1.175494E-38 2.225074E-308 3.362103E-4932
Min.prava vr. : 1.401298E-45 4.940656E-324 3.645200E-4951
Max.vrednost : 3.402823E+38 1.797693E+308 1.189731E+4932
Radiks : 2 2 2
Signifikand : 24 53 64
Min.eksponent : -125 -1021 -16381
Max.eksponent : 128 1024 16384
Broj cifara : 6 15 18
Тест пример са Microsoft C компајлером¶
float double long double
Velicina [B] : 4 B 8 B 8 B
Min.vrednost : 1.175494E-38 2.225074E-308 2.225074E-308
Min.prava vr. : 1.401298E-45 4.940656E-324 4.940656E-324
Max.vrednost : 3.402823E+38 1.797693E+308 1.797693E+308
Radiks : 2 2 2
Signifikand : 24 53 53
Min.eksponent : -125 -1021 -1021
Max.eksponent : 128 1024 1024
Broj cifara : 6 15 15