when define constants in c cannot accurately represented in decimal system, example π , how many digits taken account compiler creating float or double in memory? for example: /* overkill? */ const float pi_f = 3.1415926535897932384626433832795f; /* few digits? */ const double pi_d = 3.14159; assuming ieee 754 standard floating point numbers , commonplace nowadays, 7.22 digits of accuracy float , 15.95 double , aim 7 digits after decimal point float π constant , 15 double on safe side. 128-bit long double gives 34.02 precision, 33 positions after decimal point in π.(*) however, excess precision won't hurt, compiler cut off. (*) note long double quite not ieee format; x86-32 typically has 80-bit, not 128-bit, long double . in msvc, it's apparently synonym double , 64-bit.
Comments
Post a Comment