  [Contents] · [Home] · [Mail]

## SALIERI Language - real (Object Type)

To represent floating point numbers, objects of type real are used. Constants of type real are denoted as usual (e.g., -124.456); as for integer values, they have an arbitrary number of positive (+) or negative (-) signs, which are treated as prefix operators and resolved according to the usual rules (e.g., +0.1 = 0.1; --0.02 = 0.02).

The basic operations on reals are addition (+), subtraction (-), multiplication (*), and division (/); the precedence of these operators is as usual (unary - and + binding strongest, followed by * and /, and finally binary + and - with the weakest precedence). There are more predefined functions on reals, including trigonometric functions, roots, exponentiation, and logarithm.

To convert reals to integers, the functions floor and ceil can be used as well as the conversion function INT. For integer to real conversion multiplication by 1.0 or the conversion function REAL can be used. Automatic type conversion from integer to real takes place whenever a function or operation which expects a real value parameter is applied to an integer.

Attention!
Note, that scientific notation for real constants (like 1.23E-3) is not supported by SALIERI. When output by SALIERI, real values are always represented with 8 decimals (where the last decimal is rounded); however, usually a higher precision is used internally. But inherent to the properties of real arithmetics on computers in general, you can never absolutely rely on the precision of real valued calculations (see example below). If absolute precisision is needed, integer values should be used instead. Unlike overflow situations for integers, SALIERI is very sensitive with respect to real numbers - the system might crash. Although the range of object type real is very large, one should be careful with fast growing functions like exp.

Example:
> 23.4
Result= 23.40000000
> -+23.4
Result= -23.40000000
> 7 + 10/3*12-1
Result= 46.00000000
> exp(3,2.5)
Result= 15.58845727
> exp(3,2.5)
Result= 15.58845727
> (0.3-0.2)*exp(10,10)
Result= 999999999.99999976

See also: +, -, *, /, INT, REAL, floor, ceil, Predefined Functions, Operators and Expressions.

[Contents] · [Home] · [Mail]
© sic!systems, page frame designed by hh; this page has been automatically generated from the SALIERI Documentation Database.