Hello, > > I'm having trouble using Round: > > ----- [ BOF: test.pas ] ----- > > Program Test ; > > Uses > > Math, SysUtils ; > > > > Var > > i : Byte ; > > Begin > > For i := 0 to 31 do > > WriteLn(Format('%d %.8x',[i,Round(Ldexp(1,i))])) ; > > End. > > ----- [ EOF: test.pas ] ----- > >
> > ... snip ... > > > > Any idea ? > > Round returns a longint. The range of a longint is -2^31 .. (2^31-1). > The result you had (2^31) doesn't fit in a longint, so this is not a fpc bug. > > As I don't have Delphi, I don't know why Delphi doesn't give an error. It could > be that the Delphi's return value is int64 or cardinal. Or it simply doesn't Delphi's round() returns an int64. > care about the overflow. What happens in delphi if the formatstring is '%d %d'? %d just indicates that the given value is an integer - the format function itself does not limit the number of digits (or the range of the given value) in this case. Regards, Thomas _______________________________________________ fpc-pascal maillist - [EMAIL PROTECTED] http://lists.freepascal.org/mailman/listinfo/fpc-pascal