[EMAIL PROTECTED] wrote: > > #include <stdio.h> > #include <math.h> > > int main() > { > printf("\n %1.55f \n", sqrt(3.9999999999999999)); > return 0; > } > > Result: 2 > > Why does this return 2 ??
If you meant to use long double, you should have so specified. Decimal digits beyond 17 aren't significant in conversion to IEEE 64-bit double. Some of the properties of the floating point data types are shown in <float.h>. Just as a matter of curiosity, how did you get this message marked as spam?