Numlex Документация
Справочник
Сообщить о проблеме

Форматы чисел и отображение результатов

Четыре региональных пресета, поведение при вставке, режимы отображения результатов и грамматика пользовательских шаблонов.

Numlex форматирует и то, что вы вводите, и то, что он отвечает, чтобы числа читались привычно для вашего региона. Эта страница описывает вкладку настроек Numbers (Settings → Numbers): четыре региональных пресета, их влияние на ввод, группировку и вызовы функций, а также все режимы отображения результатов — включая грамматику пользовательских шаблонов.

Региональные пресеты

ФорматПримерДесятичныйГруппировкаРазделитель аргументов функций
Systemплатформаlocalelocale;, если системный десятичный разделитель — запятая, иначе ,
North America1,234.56.,,
Western Europe1.234,56,.; (max(1,5; 2,5))
Eastern Europe1 234,56,NBSP (пробел принимается при вводе);

Чем различаются форматы

  • Вставка: при включённой конвертации при вставке слипшиеся группы (1.234,56) нормализуются к активному формату; без неё ввод остаётся точно таким, как вставлен.
  • Группировка при вводе: 1,234 вне вызовов функций — это число 1234 (запятая-группа). Десятичная запятая как десятичный разделитель существует только в конфигурации Western/Eastern Europe.
  • Внутри вызовов функций: точечные форматы (North America, System с точкой) используют , как разделитель аргументов (max(1.5, 2.5)); запятые форматы (Western/Eastern Europe, System с запятой) используют ; (max(1,5; 2,5)). Десятичная запятая как десятичный разделитель аргумента существует только в запятых форматах.
  • Компактное отображение (1.5M) — отдельная настройка, не зависящая от регионального формата.
  • Язык интерфейса не управляет числовой локалью.

Режимы отображения результатов

Настройка Result display применяется глобально и может быть переопределена для отдельного ответа. Режимы:

РежимЗначение
Automaticавто: обычный/компактный вид плюс научный запас при |v| ≥ 1e16 (сам в инженерную запись не переключается)
Decimalобычная десятичная запись с указанным числом знаков
Scientificнаучная запись (1.5e6)
Engineeringнаучная запись со степенями, кратными 3 (1.5e6)
Fractionрациональная дробь (1/2)
Timespanразложение длительности только для величин размерности времени (5 min 30 s); всё остальное падает в Automatic
Customпользовательский шаблон (см. ниже)

Дополнительные настройки охватывают положение знака минус и символа валюты (префикс/суффикс, слева/справа). Они применяются только к отображению.

Переопределение для отдельного ответа

Настройка Result display глобальна; каждый ответ может переопределить её локально. Щёлкните числовой ответ правой кнопкой (или с Control):

Пункт менюЭффект
Round — ползунок 0…10 dpПовторно округляет только этот ответ, независимо от глобального округления 2…10. Строка-источник не трогается.
Number FormatЛокальная запись для этого ответа, с Default для снятия. Доступно для числовых ответов.
Reset Formatting to DefaultsПоявляется только когда у ответа уже есть переопределение; снимает его.

Переопределение сохраняется вместе с листом. Оно меняет только отрисовку этого ответа: значение, любой токен, ссылающийся на строку (токены отображаются по своему или глобальному формату), зависимости и суммы не затрагиваются. Полное меню описано в настройках и внешнем виде.

Пользовательские шаблоны

Пользовательские шаблоны используют фиксированный ASCII-скелет, нейтральный к локали, — вывод локализуется контекстом. Шаблон содержит до трёх секций, разделённых ;: positive;negative;zero.

Грамматика для каждой секции:

  • литерал в апострофах '...'; '' — экранирование апострофа;
  • один числовой скелет: обязательные цифры 0, необязательные #; одна точка . (в целой части 0 может идти после #; в дробной — 0 может идти перед);
  • группировка , только в целой части: правый сегмент — основная группа, один повторённый сегмент слева — вторая (индийский стиль #,##,##0). Всё остальное отклоняется;
  • один скалер: % (×100) или ‰ (×1000);
  • один плейсхолдер валюты ¤ — его позиция задаёт место символа;
  • необязательная экспонента: E0, E+0, E00, E+00, E-00 (один или два плейсхолдера экспоненты) и только после цифр мантиссы. Голый скелет E00 (без цифры перед E) невалиден.

Пределы: 96 Unicode-скаляров на шаблон, 12 дробных плейсхолдеров и не более 256 символов вывода. Шаблон, не прошедший валидацию, всё равно сохраняется и редактируется, но никогда не доходит до рендера: отображение откатывается к Automatic.

#,##0.00        → 1,234,567.89   (value 1234567.8912)
0.00' €'        → 45.68 €        (value 45.678; literals live only in apostrophes)
'≈ '0.###       → ≈ 45.678
#,##0.00' €'    → 1,234,567.89 € (grouping + literal)
#,##,##0        → 12,34,568      (Indian style)
#E0             → 1e6            (value 1000000; a digit before E is required)
0.00%;;0        → 12.34%         (positive;negative;zero; value 0.1234)

Невалидные шаблоны — никогда не рендерятся, ответ откатывается к Automatic: 1.2.3 (две точки), #E0E0 (две экспоненты), 0.0%‰ (два скалера), E00 (нет цифры перед E), E±00 (то же), 1,000,0 (некорректная группировка), # ##0 (пробелы не входят в скелет), 0.00 "€" (двойные кавычки — только апострофы), 0.### 'EUR' (пробел перед литералом).

Связанные разделы

Нашли ошибку в документации? Сообщите о ней на GitHub