>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь

Формат 8!:

[x] 8!:0 y Форматировать. Форматировать массив y в соответствии с форматом в x . Упаковать каждое отформатированное число.
 
[x] 8!:1 y Форматировать1. Как и x 8!:0 y , но y не может иметь ранг более 2-х, в окончательном результате упаковываются только столбцы.
 
[x] 8!:2 y Форматировать2. Как и x 8!:0 y , но y не может иметь ранг более 2-х, результат — просто текстовая таблица.



Ранги 8!:n равны бесконечности. x 8!:n y форматирует массив y в соответствии с форматом в x .

Обычно y — массив действительных чисел. Но y может быть и текстовой таблицей, в этом случае x игнорируется, а результатом является <@,"1 y (с дальнейшей обработкой, в зависимости от варианта форматирующего глагола). Наконец, y может быть массивом упаковок, где каждый элемент (после распаковки) — действительное число или строка; в этом случае, каждый распакованный атом форматируется независимо.

x — строка фраз, отделенных запятыми; либо атом; либо список индивидуально упакованных фраз. Он должен содержать либо одну фразу (применяемую, ко всем столбцам) либо одну фразу на столбец. Если x опущен, вместо него берется a:$~(_1+#$y)}.$y . Тоесть, 8!:n y эквивалентно вычислению числа позиций после десятичной точки независимо для каждой колонки, и использованию минимальной ширины для каждого числа.

Фраза формата состоит из нуля или более модификаторов, и необязательного суффикса w.d , устанавливающего ширину и количество цифр после десятичной точки. w может быть 0, и w. или w.d целиком можно опустить. Значение каждого из этих случаев следующее:

       ширина    цифры после точки
w.d w  d
0.d вычисляется  d
d минимально  d
опущено минимально   вычисляется

Указанная или вычисленная величина w применяется ко всему массиву, в то время как минимальное w применяется к каждому отдельному числу. Недостаточная ширина дает результат состоящий из *.

d не может быть более 9-ти. Вычисленное d применяется к целому массиву, и, в этом случае, для ненулевых чисел с абсолютной величиной менее 1e_9 или более 2e9 используется экспоненциальная (научная) запись.

Допустимы следующие модификаторы (каждый из них можно применить не более одного раза в одной фразе формата) :

c     вставить запятую между тройками цифр слева от десятичной точки
l  выровнять влево (w должно быть указано или вычислено)
b<xx>  заменитель для форматированного нуля
d<xx>  заменитель для _ __ _. ; при отсутствии d , _ __ _. показываются как есть
m<xx>  префикс для форматированных отрицательных чисел, заменяющий знак "минус" -
n<xx>  суффикс для форматированных отрицательных чисел
p<xx>  префикс для форматированных неотрицательных чисел
q<xx>  суффикс для форматированных неотрицательных чисел
r<xx>  фоновый текст, повторяется циклически как в диаде $
s<xx>   xx массив символов четной длины (по умолчанию,замена) указывающих на замену символов по умолчанию
заменить можно символы: e,.-*
знак "минус" по умолчанию выводится как - (вместо _ )

Можно опустить <xx>, что означает <> . Например, просто b само по себе обозначает: "опустить нули, вместо них не выводить ничего". Вместо <xx> можно использовать (xx) или [xx] или {xx} .

Примеры:

   fmt =: 8!:0
   fmt1=: 8!:1
   fmt2=: 8!:2

   ] y=: 1.23 12345 123.4 0.12 ,__ 0 1.15 _1234.5,: _44 0.5 _0.5 0.1
1.23 12345 123.4    0.12
  __     0  1.15 _1234.5
 _44   0.5  _0.5     0.1

   '' fmt y            NB. минимальное w вычисленное d, одинаковое для всех столбцов
+------+--------+------+--------+
|1.23  |12345.00|123.40|0.12    |
+------+--------+------+--------+
|__    |0.00    |1.15  |-1234.50|
+------+--------+------+--------+
|-44.00|0.50    |-0.50 |0.10    |
+------+--------+------+--------+
   $ '' fmt y
3 4
   #&> '' fmt y
4 8 6 4
2 4 4 8
6 4 5 4

   ',,,' fmt y         NB. минимальное w вычисленное d, для каждого столбца индивидуально
+------+-------+------+--------+
|1.23  |12345.0|123.40|0.12    |
+------+-------+------+--------+
|__    |0.0    |1.15  |-1234.50|
+------+-------+------+--------+
|-44.00|0.5    |-0.50 |0.10    |
+------+-------+------+--------+
   ((4$<'') fmt y) -: ',,,' fmt y
1
   (fmt y) -: ',,,' fmt y
1

   '0.2' fmt y         NB. вычисленное w, 2 знака после точки, для всех столбцов
+--------+--------+--------+--------+
|    1.23|12345.00|  123.40|    0.12|
+--------+--------+--------+--------+
|      __|    0.00|    1.15|-1234.50|
+--------+--------+--------+--------+
|  -44.00|    0.50|   -0.50|    0.10|
+--------+--------+--------+--------+
   (4$<'0.2') fmt y    NB. вычисленное w, 2 знака после точки, для каждого столбца индивидуально
+------+--------+------+--------+
|  1.23|12345.00|123.40|    0.12|
+------+--------+------+--------+
|    __|    0.00|  1.15|-1234.50|
+------+--------+------+--------+
|-44.00|    0.50| -0.50|    0.10|
+------+--------+------+--------+

   NB. с использованием различных модификаторов
   (4$<'m<(>n<)>q< >0.2') fmt y
+-------+---------+-------+---------+
|  1.23 |12345.00 |123.40 |    0.12 |
+-------+---------+-------+---------+
|     __|    0.00 |  1.15 |(1234.50)|
+-------+---------+-------+---------+
|(44.00)|    0.50 | (0.50)|    0.10 |
+-------+---------+-------+---------+
   (4$<'cs<, .,>b<nil>d<n/a>0.2') fmt y
+------+---------+------+---------+
|  1,23|12 345,00|123,40|     0,12|
+------+---------+------+---------+
|   n/a|      nil|  1,15|-1 234,50|
+------+---------+------+---------+
|-44,00|     0,50| -0,50|     0,10|
+------+---------+------+---------+

   NB. fmt1 и fmt2
   'b<nil>d<n/a>0.2' fmt1 y
+--------+--------+--------+--------+
|    1.23|12345.00|  123.40|    0.12|
|     n/a|     nil|    1.15|-1234.50|
|  -44.00|    0.50|   -0.50|    0.10|
+--------+--------+--------+--------+
   'b<nil>d<n/a>c11.2' fmt2 y
       1.23  12,345.00     123.40       0.12
        n/a        nil       1.15  -1,234.50
     -44.00       0.50      -0.50       0.10


>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь