单位计算
a-calc 支持带单位的数值参与运算,适用于金融、物理等需要保留单位的计算场景。
启用单位计算
使用 _unit: true 选项启用单位计算:
javascript
import { calc } from 'a-calc'
calc('100元 + 50元', { _unit: true }) // '150元'
calc('10kg + 5kg', { _unit: true }) // '15kg'
calc('50% + 30%', { _unit: true }) // '80%'单位提取规则
a-calc 会自动从数值后面提取单位:
javascript
calc('100元', { _unit: true }) // '100元'
calc('99.9折', { _unit: true }) // '99.9折'
calc('15%', { _unit: true }) // '15%'
calc('3.14π', { _unit: true }) // '3.14π'注意
单位必须紧跟在数字后面,不能有空格:
javascript
calc('100元', { _unit: true }) // ✓ 正确
calc('100 元', { _unit: true }) // ✗ 错误,单位会被忽略复杂表达式
单位计算支持复杂的数学表达式:
javascript
calc('(100元 + 50元) * 2', { _unit: true }) // '300元'
calc('100元 * 3 - 50元', { _unit: true }) // '250元'
calc('1000元 / 4', { _unit: true }) // '250元'
calc('2 ** 10 字节', { _unit: true }) // '1024字节'变量中的单位
变量值也可以包含单位:
javascript
calc('price + discount', {
price: '100元',
discount: '20元',
_unit: true
}) // '120元'
calc('total * rate', {
total: '1000元',
rate: 0.8,
_unit: true
}) // '800元'移除单位
使用 !u 或 !uh(无参数时)移除结果中的单位:
javascript
calc('100元 + 50元', { _unit: true }) // '150元'
calc('100元 + 50元 | !u', { _unit: true }) // '150'
calc('100元 + 50元 | !uh', { _unit: true }) // '150' (等效)单位与格式化结合
单位计算可以与格式化选项一起使用:
javascript
// 保留小数
calc('100.5元 + 50.3元 | =2', { _unit: true }) // '150.80元'
// 千分位
calc('1000元 + 500元 | ,', { _unit: true }) // '1,500元'
// 组合
calc('10000元 * 1.5 | =2,', { _unit: true }) // '15,000.00元'Ctrl+D 选择词, Ctrl+/ 注释
注意事项
- 单位一致性:同一表达式中的单位应该保持一致,a-calc 会使用表达式中第一个出现的单位
- 单位仅用于显示:单位不参与实际的换算计算,仅作为标记保留在结果中