百分比
百分比字面量、加法与乘法语境,以及所有严格的短语模式——包括逆向和「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%(无空格)是旧式后缀,结果为 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中两个值使用不同货币)是错误。 - 除以零是错误。
- 布尔值和货币在这里绝不会被强制转换为数字。
- 零基数和无穷值是错误。