Actually it is proof that comparisons may not be so precise when comparing float values
I don't think that is something wrong in the comparison, the comparison said the truth: the two numbers are different.
what something can create confusion is also the "default" float value shown in the "debug wathces", for example
procedure TForm1.FormCreate(Sender: TObject);
var
a, b, c, d : double;
begin
a:=0.1;
b:=0.2;
c:=0.3;
d:=a+b;
if (c = d) then
beep;
end;
this code will never do "beep", but the comparison said the truth, infact (see picture 1) the binary repesentation of C and D confirms they are different, but if you look at the "default" value it says something false, both are 0.3

(picture-2).
I understand that it can be annoying to see similar numbers in watches, and they can be much-much longer: (eg 64-bit double, if I am not wrong)
C=+0.299999999999999988897769753748434595763683319091796875
D=+0.3000000000000000444089209850062616169452667236328125
So as main advice look always at the binary content of "float" variable, do not rely on other representation for float variable and even on what the watches say when “Default” is selected.
is there any method to find exact value of the float variable
If you mean decimal representation: no, that I know of. You have to write code for this purpose (see the real value of C and D above).
If you want see the values during coding look at the Memory Dump representation in the watches as said above.