28 lines
982 B
Modula-2
28 lines
982 B
Modula-2
|
DEFINITION MODULE RealConversions;
|
||
|
|
||
|
PROCEDURE StringToReal(str: ARRAY OF CHAR; VAR r: REAL; VAR ok: BOOLEAN);
|
||
|
(* Convert string "str" to a real number "r" according to the syntax:
|
||
|
|
||
|
['+'|'-'] digit {digit} ['.' digit {digit}]
|
||
|
['E' ['+'|'-'] digit [digit]]
|
||
|
|
||
|
ok := "conversion succeeded"
|
||
|
Leading blanks are skipped;
|
||
|
Input terminates with a blank or any control character.
|
||
|
*)
|
||
|
|
||
|
PROCEDURE RealToString(r: REAL;
|
||
|
digits, width: INTEGER;
|
||
|
VAR str: ARRAY OF CHAR;
|
||
|
VAR ok: BOOLEAN);
|
||
|
(* Convert real number "r" to string "str", either in fixed-point or
|
||
|
exponent notation.
|
||
|
"digits" is the number digits to the right of the decimal point,
|
||
|
"width" is the maximum width of the notation.
|
||
|
If digits < 0, exponent notation is used, otherwise fixed-point.
|
||
|
If fewer than "width" characters are needed, leading blanks are inserted.
|
||
|
If the representation does not fit in "width", then ok is set to FALSE.
|
||
|
*)
|
||
|
|
||
|
END RealConversions.
|