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

Reply via email to