表达式计算
表达式计算插件让你可以直接在 MioKit 搜索框中进行数学计算,无需打开计算器应用。
功能特点
- 即时计算: 输入表达式后实时显示计算结果
- 剪贴板计算: 复制表达式后呼出搜索框,自动计算剪贴板内容
- 自定义脚本: 支持编写 JavaScript 脚本实现自定义计算方法
- 格式化输出: 支持小数位数控制和千分位分隔显示
使用方法
- 按下全局快捷键唤起 MioKit 搜索框
- 直接输入数学表达式,如
1+2*3 - 结果会实时显示在搜索结果中
- 按 Enter 键复制计算结果到剪贴板
支持的运算符
| 类型 | 运算符 | 示例 | 结果 |
|---|---|---|---|
| 加法 | + | 10 + 5 | 15 |
| 减法 | - | 10 - 5 | 5 |
| 乘法 | * | 10 * 5 | 50 |
| 除法 | / | 10 / 5 | 2 |
| 取余 | % | 10 % 3 | 1 |
| 幂运算 | ** | 2 ** 10 | 1024 |
| 括号 | () | (1 + 2) * 3 | 9 |
| 阶乘 | ! | 5! | 120 |
位运算符
| 运算符 | 说明 | 示例 | 结果 |
|---|---|---|---|
& | 按位与 | 5 & 3 | 1 |
| | 按位或 | 5 | 3 | 7 |
^ | 按位异或 | 5 ^ 3 | 6 |
~ | 按位取反 | ~5 | -6 |
<< | 左移 | 2 << 3 | 16 |
>> | 右移 | 16 >> 2 | 4 |
内置函数
提供了丰富的内置函数,函数名不区分大小写。
数学函数
| 函数 | 说明 | 示例 | 结果 |
|---|---|---|---|
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.86 | BMI 计算 |
设置选项
启用自定义脚本
开关自定义脚本功能。关闭后只能使用基础数学运算。
小数点保留位数
设置计算结果保留的小数位数。默认保留 2 位小数。
千分位分隔
开启后,较大的数字会以千分位逗号分隔显示,如 1,234,567.89,方便阅读大数字。
常见问题
为什么自定义方法不生效?
请检查以下几点:
- 确认「启用自定义脚本」选项已开启
- 检查脚本语法是否正确
- 确保方法名和调用时的名称一致
- 检查参数数量是否匹配