Проценты
Процентные литералы, аддитивный и мультипликативный контексты и все строгие фразовые шаблоны — включая обратные формы и «what %».
Проценты в Numlex — не просто значения: контекст меняет их смысл. 10% — это 0.1, но в
аддитивном контексте 100 + 10% означает десять процентов от накопленной левой части,
и результат сохраняет процентный вид при отображении.
Эта страница описывает процентные литералы, строгую фразовую грамматику (of, on,
off, обратные формы what, дроби и множители), правило затенения ключевых слов и
ограничения операндов, превращающие смешанные валюты и нулевые базы в видимые ошибки.
Процентные литералы
Процентный литерал — p% = p/100. Его смысл зависит от контекста:
- Аддитивный контекст — «чистый» процент справа — доля от накопленной левой части:
100 + 10%= 110,110 − 5%= 104.5. - Любой другой контекст — обычный скаляр:
200 × 10%= 20,200 / 10%= 2000.
Результаты сохраняют свой вид при отображении: результат процентного вида показывается
как 30%, а не 0.3, множитель — как 1.5x, дробь — как 1/2.
Затенение ключевых слов
Фразовая грамматика использует ключевые слова of on off is what as a to percent percentage fraction multiple multiplier x. Они не зависят от регистра.
Активная переменная или константа с именем ключевого слова отключает все формы, которые
его используют. Например, объявление of = 5 выключает все формы с of на листе —
слово становится вашим значением.
Фразовые шаблоны
| Шаблон | Пример | Результат | Правило |
|---|---|---|---|
<p>% of <v> | 15% of 490 | 73.5 | процент × значение; базис — остаток строки (15% of 490 + 5 = 74.25, 50% of (10 + 5) = 7.5); денежное значение базиса допустимо |
<p>% on <v> | 15% on 200 | 230 | v × (1 + p) |
<p>% off <v> | 30% off 200 | 140 | v × (1 − p) |
<v> is <p>% of what | 100 is 50% of what | 200 | v ÷ p (обратный базис) |
<v> is <p>% off what | 100 is 20% off what | 125 | v ÷ (1 − p) |
<v> is <p>% on what | 100 is 25% on what | 80 | v ÷ (1 + p) |
<a> is what % of <b> | 50 is what % of 200 | 25% | a ÷ b как процент |
<a> is what % off <b> | 140 is what % off 200 | 30% | (b − a) ÷ b |
<a> is what % on <b> | 230 is what % on 200 | 15% | (a − b) ÷ b |
<a> as a % of <b> | 100 as a % of 800 | 12.5% | a ÷ b как процент |
<a> to <b> is what % | 100 to 130 is what % | 30% | (b − a) ÷ a |
<a> to <b> as % | 100 to 130 as % | 30% | (b − a) ÷ a |
<m>x of/on/off <v> | 1.5x of 20, 1.5x on 20, 1.5x off 20 | 30 / 50 / −10 | множитель: of = v·m; on = v·(1+m); off = v·(1−m) — ровно как у процентов (100% off = 0) |
<a>/<b> % (пробел перед %) | 20/200 % | 10% | превращает предшествующее деление в процент; 20/200% (без пробела) — legacy-постфикс, даёт 10 |
<p>% as fraction | 50% as fraction | 1/2 | сокращённая рациональная дробь |
<a>/<b> as fraction | 2/10 as fraction | 1/5 | сокращённая рациональная дробь |
<d> as % | 0.25 as % | 25% | десятичная → процент |
<a> as x of <b> | 20 as x of 5 | 4x | отношение как множитель |
<a> to <b> as x | 10 to 15 as x | 1.5x | отношение как множитель |
20% is 500, what is 750 | 17.5% | трёхзначная форма: B × L ÷ A | |
if 500 is 20%, what is 750 | 30% | трёхзначная форма: A × C ÷ B |
Правила операндов
Операнды вычисляются тем же строгим ядром, что и везде, — именованные значения, маркеры валют и денежные имена работают.
- Деление денег в разных валютах (
50 is what % of 200, где значения в разных валютах) — ошибка. - Деление на ноль — ошибка.
- Логические значения и валюты здесь никогда не приводятся к числам.
- Нулевые базы и бесконечные значения — ошибки.
Связанные разделы
- Операторы и логика — почему
+по-особому обрабатывает процент справа. - Деньги и ставки — значения с маркерами валют и контекстные проценты
вроде
$100 + 10%. - Форматы чисел и отображение — как отображаются процент, множитель и дробь.