TecNico
(xianii)
1
Calcuko(算子) - 多行变量公式计算器
在线体验地址:https://Nigh.github.io/calcuko/
[!NOTE]
本项目受 calctus 启发而开发。
本人是calctus的重度用户,但是由于其为C#开发,只支持Windows环境,所以Calcuko作为一个跨平台的方案可以用于满足在其他平台上的公式计算需求。
之前在小众推荐过 calctus 来着:电子工程师的计算神器 calctus
Calcuko 是一款专为工程师、学生和开发者设计的轻量级、响应式多行公式计算器。它允许你像写代码一样编写计算逻辑,支持变量定义、实时求值以及自动依赖联动,并可以作为 PWA 应用安装到手机或电脑上离线使用。
核心特性
实时联动计算:修改任意一行的数值,后续所有依赖该变量的行都会瞬间自动更新。
混合编写模式:支持 变量 = 表达式 赋值模式,也支持纯表达式直接求值。
智能语法高亮:变量、运算符、数值和注释一目了然,并支持配对括号高亮,防止逻辑错误。
离线优先 (PWA):支持安装到桌面或主屏幕,无需网络即可随时进行复杂计算。
本地持久化:你的计算公式会自动保存到浏览器,下次打开即刻继续工作。
注释支持:使用 // 记录你的思路或参数含义。
快速上手
1. 基础计算
直接输入公式即可查看结果:
(12 + 8) * 5 / 2
sqrt(144) + pow(2, 10)
2. 变量定义与引用
像写脚本一样定义变量:
price = 199
count = 3
tax = 0.08
total = price * count * (1 + tax)
3. 注释与复杂逻辑
// 输入参数
width = 50
height = 20
// 计算面积
area = width * height
// 引用上方变量
diagonal = sqrt(pow(width, 2) + pow(height, 2))
内置函数参考
Calcuko 内置了标准 Math 对象的所有常量和函数:
| 类型 |
示例 |
| 常量 |
PI, E |
| 基础函数 |
abs(x), ceil(x), floor(x), round(x), max(a, b), min(a, b) |
| 数学运算 |
sqrt(x), pow(base, exp), exp(x), log(x) |
| 三角函数 |
sin(x), cos(x), tan(x), asin(x), acos(x), atan(x) |
2 个赞
TecNico
(xianii)
3
我又忘记调样式了,我自己是dark theme,每次都忘记看默认的light theme效果了,等下全部统一theme就好了。
TecNico
(xianii)
5
你可以看看我之前推荐过的 calctus,是类似的计算器。主要是我 Windows 用得少了,实在没有好的替代,就写了一个。
excel是可以,但是作为计算器对于我来说太重了。而且单元格引用计算,没有变量来得清晰直接。
其实更像 Linux 上的命令行计算器 bc
这个软件在 Windows 上可以通过 busybox-w32 来使用。
TecNico
(xianii)
7
是指在Linux上?
这种计算器我主要实际的使用场景就是会有几个关联的公式,然后我需要频繁调整其中一些参数来进行计算。
TecNico
(xianii)
9
抱歉理解错了。
没有用过bc,不过除了变量计算,我主要还是需要一些快捷的工程计算的特性,这部分后面也会增加。
类似 calctus 里面的很多功能,都是我平时会大量使用的。因为我现在工作平台完全切换到linux,没有windows机器来继续用它了。
而且现在放到web端,也让我可以在手机上使用了。
TecNico
(xianii)
11
已更新主题配置。现在统一使用的是dark theme的固定主题了。顺便修了一下其他一些小问题。
ps. 之后会开始增加一些工程师常用的特性。
想问一下开发者,既然是工程用的计算器,日后是否有计划加入随机误差传递功能呢?比如,计算 (12.1 ± 0.2) × 3 + (23.1 ± 0.2) 的结果,给出数值与不确定度。
TecNico
(xianii)
14
会实现。这也是 calctus 本身就具备的能力。我需要重点考虑的是输入的方式和表现的形式,来支持将不同的分布进行组合运算。
虽然…但是…,大佬,有没有可能支持中文变量名
,做项目的时候经常要和客户沟通计算公式,刚好用上这个
TecNico
(xianii)
18
现在就参考他的变量显示的方案优化一下我的变量显示。暂时也没想到更好的展示方案。
我觉得可以考虑定义一种特殊的数据类型,该数据类型的数据包括两部分:数值与不确定度,输入时使用一些特殊的函数来输入,比如:
var = func(12.0, 1.2)
表示变量 var 为 12.0 ± 1.2。