Dimitris, > when a real number overflows the program halts with EInvalidOp error. > How can I make the program behave the more standard way, where the > variable gets the value "inf" and execution continues normally? This is > vital for many tasks, like fractal computation.
You can use try..except..end block and switch -Sd when compile: program realover; Uses math; var r:real; BEGIN r:=2; while True do begin try r:=r**2; writeLn(r); except r:=infinity; writeLn(r); // break end; end; END. Or you may take a look IEEE specification if it is necessary to create your own big float support for larger precision with fractals. > P.S. Why when the program doesn't include the variants unit the program > complains at runtime? What is that unit? At windows, it is not necessary for this example. Variants unit provide new type definition and supported functions, which can consist any simple type (integer, string, etc). Sasa _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal