单位与数量
单位表达式、换算、数量运算、严格短语模式、烹饪密度和自定义单位。
单位把 Numlex 变成懂得量纲的计算器:5 m 是米,而 5m 是五百万;1 km + 500 m 是
1.5 km,10 km in 45 min 是配速。这里一切都是严格的:短语模式要么完全占用该行,
要么该行根本不进入这些模式。
本页说明数量语法、单位表达式及其排除项、大小写敏感性、SI 前缀、数量运算表、所有 严格短语模式、烹饪密度表,以及自定义单位如何扩展目录。
空格很重要
数量是 <number> <unit>——空格必不可少:
5 m——五米。5m——五百万(标量;参见紧凑后缀)。2 Gb——两吉比特;2 Gbyte——两吉字节。
粘在一起的字母不是单位。
单位表达式
单位用 *、· 和 / 组合,用 ^、² 或 ³ 取幂(幂的底数是字母,例如 m²、
m³):
km/h kg/m³ N·m m/s²
限制:
- 组合只能线性:幂不能任意构造新的量纲——复合形式限于
^2、^3以及目录原子的 分数或乘积形式。 - 温度、货币和燃料单位是特殊的:它们只能独立出现,绝不进入复合表达式(
C°/h是 错误)。 - 换算
to|in|as <unit>:右侧是目标单位,左侧是数量,量纲签名必须一致——10 km in m= 10,000 m,而10 km in kg是错误。 - 温度按仿射公式换算,而不是按系数:
100 C° to F°= 212 F°。 - 燃料单位是
L/100km/L/km族及其反向(公里/升式)形式。
大小写敏感
输入别名保留大小写:
MB(兆字节)和Mb(兆比特)是不同的单位。mb两者都不是——大小写折叠后存在歧义,因此确定地视为未知单位。- 单位的显示标签也可作为输入:
10 meters=10 m。
SI 前缀
允许的前缀符号为 p n µ m c d k K M G T P——从 10⁻¹²(皮可)到 10¹⁵(拍它)。每个
目录原子声明它接受的前缀(应用在 SI prefixes 列中列出它们,
单位目录也复现该列)。注意 µ 是希腊字母 mu(U+00B5 或
U+03BC),不是拉丁字母 u。
自动生成的——即不单独列出的——形式:
- 原子的复数形式(
meters=meter), - 带前缀的形式(
km、mm、kWh…),按 原子的前缀列表 + 原子 规则构建。
目录未声明的组合不是前缀:该字母会作为未知单词被划掉,数字不带单位返回——
3 Pm → 3、100 um → 100。
数量运算
数量行使用严格语言:数量、普通数字、命名值、运算符 + - * / ^ × ÷ of ( ),以及后缀
to|in|as <unit>。一行要么完全属于这种语言——命中形状,错误因此可见——要么该语言
完全不认领它(转入货币、日期或普通文本)。
| 运算 | 规则 | 示例 |
|---|---|---|
+ − | 量纲相同;「纯数字」一侧接受另一侧的单位 | 300 + 20 km = 320 km;1 km + 500 m = 1.5 km |
× / | 量纲组合;拒绝货币和温度 | 90 km / 3 day = 30 km/day |
^ | 乘方(受复合形式限制) | 10 m × 2 m = 20 m² |
| 显示 | 结果以更粗的操作数单位显示(基础系数更大者);相同时取左侧 | 1 km + 500 m → km |
命名数量和令牌自然可用:声明 distance = 10 km,之后询问 distance in m。温度、货币
和燃料保持独立——绝不参与复合表达式。
严格短语模式
| 模式 | 示例 | 含义 |
|---|---|---|
<qtyA> in <qtyB> | 10 km in 45 min | 速度 / 配速 / 速率:A ÷ B → 0.2222 km/min |
45 min in 10 km | 配速 → 4.5 min/km | |
1 Gbit in 5 s | 传输速率 → 0.2 Gbit/s | |
<qty> at <money> per <unit> | 2.5 kg at €3 per kg | 价格:qty/unit × 价格 → €7.50 |
per <unit>(代数内部) | 90 km per 3 day | 30 km/day(混合级运算符) |
| PPI(双向) | 10 in in px at 96 ppi | 960 px;960 px at 96 ppi to in = 10 in(1 in = 0.0254 m 精确值) |
| 烹饪密度 | 200 g of flour to ml | 质量 → 体积,经由烹饪密度表(≈) |
1 cup of honey to g | 体积 → 质量(≈) | |
1 L of oil as kg | 反向类型目标可用 in / as / to |
每个短语模式都占用它匹配的行:错误是可见的,绝不会变成「划词回退」。
烹饪密度
近似堆积密度,复现标准的美国烘焙杯表。未来的重新校准是可见变化。输入为小写,忽略空格和连字符(brown sugar = brown-sugar =
brownsugar)。
| 输入 | 标签 | kg/m³ | 说明 |
|---|---|---|---|
| water | water | 1000 | 1 cup ≈ 237 g |
| flour | all-purpose flour | 528.3 | 1 cup ≈ 125 g (spooned, leveled) |
| sugar | granulated sugar | 845.4 | 1 cup ≈ 200 g |
| brownsugar | brown sugar (packed) | 930.3 | 1 cup ≈ 220 g |
| icingsugar | powdered sugar | 507.2 | 1 cup ≈ 120 g |
| salt | table salt | 1153.9 | 1 cup ≈ 273 g |
| butter | butter | 959.4 | 1 cup ≈ 227 g |
| honey | honey | 1437.1 | 1 cup ≈ 340 g |
| milk | whole milk | 1031.3 | 1 cup ≈ 244 g |
| oil | vegetable oil | 921.4 | 1 cup ≈ 218 g |
| rice | white rice (dry) | 782.0 | 1 cup ≈ 185 g uncooked |
| cornstarch | cornstarch | 541.0 | 1 cup ≈ 128 g |
| oats | rolled oats (dry) | 338.2 | 1 cup ≈ 80 g |
| cocoa | cocoa powder (sifted) | 359.3 | 1 cup ≈ 85 g |
| chocolate | chocolate chips | 718.5 | 1 cup ≈ 170 g |
| peanutbutter | peanut butter | 1090.5 | 1 cup ≈ 258 g |
| creamcheese | cream cheese | 976.4 | 1 cup ≈ 231 g |
| yogurt | plain yogurt | 1035.6 | 1 cup ≈ 245 g |
| applesauce | applesauce | 1031.3 | 1 cup ≈ 244 g |
| cornmeal | cornmeal | 613.1 | 1 cup ≈ 145 g |
| yeast | dry yeast | 450 | 1 cup ≈ 107 g (very light) |
自定义单位
自定义单位在 Settings → Units 中定义,把目录扩展到 237 个内置条目之外:
- 名称: 1–6 个 ASCII 单词,≤ 40 个字符,首词以字母开头;必须唯一(与目录或另一个 自定义单位冲突会被拒绝)。
- 定义: 要么是
<number> <existing unit expression>(例如2.54 cm),要么是字面量new unit,声明一个独立的新原子。 - 依赖关系按声明顺序及其之外解析;循环是错误。全局上限为 100 个自定义单位。
- 自定义单位是应用级的(应用设置),不会保存在
.nlx表格中。 - 名称的复数形式自动被接受,与目录原子相同。
完整语法和常量系统见自定义单位与常量。
示例
10 km to m → 10 000 m
300 + 20 km → 320 km
90 km / 3 day → 30 km/day
10 km in 45 min → 0.2222 km/min
45 min in 10 km → 4.5 min/km
1 Gbit in 5 s → 0.2 Gbit/s
2.5 kg at €3 per kg → €7.50
90 km per 3 day → 30 km/day
10 in in px at 96 ppi → 960 px
200 g of flour to ml → 378.6 ml (≈)
1 cup of honey to g → 340 g (≈)