> -- Иван А. Кузьмицкий писал(а):
> Таковой не видел.Вообще, это интересный вопрос. Подобных небольших сервисных функций довольно часто не хватает. По идее, есть смысл накапливать подобный сервис централизованно, например, в подсистеме Mt.

Я поступил вот так
precision - (точность) макс. чило цифр после запятой;
minDigits - мин чило цифр после запятой или менее

если minDigits < precision, то получается аналогично
дельфийской '0.#', '0.0#' и т.д.

если minDigits > precision, то число цифр = precision
если minDigits = precision, то получается аналогично
дельфийской '0.0', '0.00' и т.д.

Вроде как работает.

## Код:
```
PROCEDURE RealToString* (x: REAL; minDigits, precision: INTEGER; OUT s: ARRAY OF CHAR);
      VAR 
         n, i, j, p: INTEGER;
        p10: REAL;  
   BEGIN
      ASSERT(precision >= 0, 20);
      ASSERT(minDigits >= 0, 21);
      p := precision;
      IF p = 0 THEN   p := 1 END;
      p10 := Math.IntPower(10.0, p);
      x := Math.Round(p10*x)/p10;
      Strings.RealToStringForm(x, 16, 0, -p, Strings.digitspace, s);
    j := LEN(s$) - 1;
    IF precision = 0 THEN
       IF s[j - 1] = '.' THEN s[j - 1] := 0X END
    ELSE
         n := precision - minDigits;
       WHILE (j >= 0) & (s[j] = '0') & (n > 0) DO s[j] := 0X; DEC(j); DEC(n) END;
         IF (j > 0) & (s[j] = '.') THEN s[j] := 0X END
    END      
   END RealToString;
```
