On 07/07/14 13:13, Andrea Mauri wrote: > Dear all, > > using formatfloat function I got an unexpected behaviour. > If I round negative numbers I can get as result of formatfloat = '-0'. > I think it is a bug, since -0 has no meaning, zero is zero. > How can I make a workaround? > e.g. > label1.Caption:= FormatFloat('0.###', strtofloat(edit1.Text)); > if in edit1.text I have -0.000001 I got -0 as result while I would like to > get 0. > > Is it a bug, what can I do?
Minus-zero is a recognized computational 'feature' of floats on computers, not a bug (AFAIK). The float variable value of StrToFloat(edit1.text) is still -0.000001 though; (try assigning it to a float type variable and watch it) Does the same happen if you Round() it to integer? e.g. label1.caption := Format('%d',[Round(strtofloat(edit1.text))]); (I know this isn't what you're after > > Best regards, > Andrea Mauri > -L. -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus