39 views

Cosider the code snippet

CODE 1

float a= 10.25;

if(a==10.25)
ptint " A "
else
print "B"
print "C"

CODE 2

float a =10.25;
n=15.25;
while(n!=10.25)
{
print "*";
n--;
}
Number of times * printed ?


Please explain the output in both cases

edited | 39 views

I have read somewhere floating point numbers should not be compared, because they are not exactly what they are looking, they give the result after rounding.

Yes, your argument is quite ostensible.Though the output may vary with compilers.

For CODE1, OUTPUT = > AC

For CODE2, OUTPUT = > ***** (5 times)   (You havn't specified the data type of n , so I am assuming it to                                                                                be FLOAT)

If you don't specify "10.25"  as "10.25f"  ,then the program will store it in "Double Precision Floating Point format " albeit the right hand side of the expression i.e. variable "a"  is declared as FLOAT (Single Precision Format )  due to which the program may give "an unexpected output"