表达式计算

表达式计算插件让你可以直接在 MioKit 搜索框中进行数学计算,无需打开计算器应用。

功能特点

  • 即时计算: 输入表达式后实时显示计算结果
  • 剪贴板计算: 复制表达式后呼出搜索框,自动计算剪贴板内容
  • 自定义脚本: 支持编写 JavaScript 脚本实现自定义计算方法
  • 格式化输出: 支持小数位数控制和千分位分隔显示

使用方法

  1. 按下全局快捷键唤起 MioKit 搜索框
  2. 直接输入数学表达式,如 1+2*3
  3. 结果会实时显示在搜索结果中
  4. 按 Enter 键复制计算结果到剪贴板

支持的运算符

类型运算符示例结果
加法+10 + 515
减法-10 - 55
乘法*10 * 550
除法/10 / 52
取余%10 % 31
幂运算**2 ** 101024
括号()(1 + 2) * 39
阶乘!5!120

位运算符

运算符说明示例结果
&按位与5 & 31
|按位或5 | 37
^按位异或5 ^ 36
~按位取反~5-6
<<左移2 << 316
>>右移16 >> 24

内置函数

提供了丰富的内置函数,函数名不区分大小写。

数学函数

函数说明示例结果
abs(x)绝对值abs(-5)5
ceiling(x)向上取整ceiling(1.2)2
floor(x)向下取整floor(1.8)1
round(x, d)四舍五入到 d 位小数round(3.456, 2)3.46
truncate(x)截断小数部分truncate(1.9)1
sign(x)返回符号 (-1, 0, 1)sign(-10)-1
sqrt(x)平方根sqrt(16)4
pow(x, y)x 的 y 次幂pow(2, 3)8
exp(x)e 的 x 次幂exp(1)2.718...
log(x, b)以 b 为底的对数log(100, 10)2
log10(x)以 10 为底的对数log10(100)2
max(a, b)返回较大值max(3, 7)7
min(a, b)返回较小值min(3, 7)3

三角函数

函数说明示例
sin(x)正弦sin(0) → 0
cos(x)余弦cos(0) → 1
tan(x)正切tan(0) → 0
asin(x)反正弦asin(0) → 0
acos(x)反余弦acos(1) → 0
atan(x)反正切atan(0) → 0

自定义脚本

通过自定义 JavaScript 脚本,你可以创建自己的计算方法。所有自定义方法需要挂载到 window.expression 对象上。

脚本格式

window.expression = {
  // 方法名(参数) {
  //   计算逻辑
  //   return 结果;
  // },
};

调试脚本

支持使用 console.log 打印日志,方便调试脚本逻辑:

window.expression = {
  myFunc(a, b) {
    console.log('参数:', a, b);
    const result = a + b;
    console.log('结果:', result);
    return result;
  },
};

常用脚本示例

window.expression = {
  // 简单加法
  sum(a, b) {
    return a + b;
  },

  // 多参数求和
  total(...args) {
    console.log(JSON.stringify(args));
    return args.reduce((sum, val) => sum + val, 0);
  },

  // 格式化数字
  formatNumber(num, decimals = 2) {
    return Number(num).toFixed(decimals);
  },

  // 计算百分比
  percent(value, total) {
    if (total === 0) return 0;
    return (value / total) * 100;
  },

  // 摄氏度转华氏度
  c2f(celsius) {
    return celsius * 9 / 5 + 32;
  },

  // 华氏度转摄氏度
  f2c(fahrenheit) {
    return (fahrenheit - 32) * 5 / 9;
  },

  // 公里转英里
  km2mi(km) {
    return km * 0.621371;
  },

  // 千克转磅
  kg2lb(kg) {
    return kg * 2.20462;
  },

  // 计算折扣价
  discount(price, off) {
    return price * (1 - off / 100);
  },

  // BMI 计算
  bmi(weight, height) {
    return weight / (height * height);
  },
};

使用示例

输入结果说明
sum(10, 20)30两数相加
total(1, 2, 3, 4, 5)15多参数求和
percent(25, 200)12.5计算百分比
c2f(25)77摄氏度转华氏度
discount(200, 20)160八折后价格
bmi(70, 1.75)22.86BMI 计算

设置选项

启用自定义脚本

开关自定义脚本功能。关闭后只能使用基础数学运算。

小数点保留位数

设置计算结果保留的小数位数。默认保留 2 位小数。

千分位分隔

开启后,较大的数字会以千分位逗号分隔显示,如 1,234,567.89,方便阅读大数字。

常见问题

为什么自定义方法不生效?

请检查以下几点:

  1. 确认「启用自定义脚本」选项已开启
  2. 检查脚本语法是否正确
  3. 确保方法名和调用时的名称一致
  4. 检查参数数量是否匹配