DEFINITION MODULE RealStr; (* REAL/string conversions *) IMPORT ConvTypes; TYPE ConvResults = ConvTypes.ConvResults; (* strAllRight, strOutOfRange, strWrongFormat, strEmpty *) (* * the string form of a signed fixed-point real number is * ["+" | "-"], decimal digit, {decimal digit}, [".", {decimal digit}] *) (* * the string form of a signed floating-point real number is * signed fixed-point real number, "E", ["+" | "-"], decimal digit, {decimal digit} *) PROCEDURE StrToReal (str: ARRAY OF CHAR; VAR real: REAL; VAR res: ConvResults); (* * Ignores any leading spaces in str. If the subsequent characters in str are in the * format of a signed real number, assigns a corresponding value to real. * Assigns a value indicating the format of str to res. *) PROCEDURE RealToFloat (real: REAL; sigFigs: CARDINAL; VAR str: ARRAY OF CHAR); (* * Converts the value of real to floating-point string form, with sigFigs significant * figures, and copies the possibly truncated result to str. *) PROCEDURE RealToEng (real: REAL; sigFigs: CARDINAL; VAR str: ARRAY OF CHAR); (* * Converts the value of real to floating-point string form, with sigFigs significant * figures, and copies the possibly truncated result to str. * The number is scaled with one to three digits in the whole number part and with * an exponent that is a multiple of three. *) PROCEDURE RealToFixed (real: REAL; place: INTEGER; VAR str: ARRAY OF CHAR); (* * Converts the value of real to fixed-point string form, rounded to the given place * relative to the decimal point, and copies the possibly truncated result to str. *) PROCEDURE RealToStr (real: REAL; VAR str: ARRAY OF CHAR); (* * Converts the value of real as RealToFixed if the sign and magnitude can be shown * within the capacity of str, or otherwise as RealToFloat, and copies the possibly * truncated result to str. The number of places or significant digits are * implementation-defined. *) END RealStr.