计算

计算 公开 已发布(自动)

FaniX 更新于 10天4小时前 | 4 | 31
如何安装动作?

适用于
分类(旧)
编程相关 功能增强
关键词

whutyang H-D-G kongkong1229 CL 4 人赞了这个动作


更多信息
分享时间 2024-06-29 20:12
最后更新 10天4小时前
修订版本 8
用户许可 -未设置-
Quicker版本 1.43.47
动作大小 143.8 KB

分享到

「通用计算器」

简介

支持的计算模块:

编程计算

通过JavaScript模块实现,表达式参照JavaScript语法(Quicker版本1.43.6及之前仅支持ES5,Quicker版本1.43.7及之后支持ES6语法)。

补充定义了部分常用常数、函数和类方法,包括

  • 数学类:
    • 数学常数:pi=π=Math.PIℯ=Math.E
    • 可以直接使用的Math系列函数:sin=Math.sincos=Math.costan=Math.tanasin=Math.asinacos=Math.acosatan=Math.atansqrt=Math.sqrtmax=Math.maxmin=Math.minround=Math.roundtrunc=Math.trunclog=Math.log,以及简写/别名:int=Math.truncln=Math.loglg=Math.log10
    • 补充的数学函数:
      • log_(a)(x):以a为底的对数(即logₐx),如log_(2)(8)==3
      • rt_(n)(x)=root_(n)(x):以x的n次根(即ⁿ√x),如rt_(10)(1024)==2
      • sum():多参数求和函数,如sum(1,2,3)==6
      • mean():多参数平均值函数,如mean(1,2,3)==2
  • 序列函数:
    • range(start, stop, step):定步长序列,类似pythonrange
      • 标准range(start, stop, step),如:range(1,10,2)==[1,3,5,7,9]
      • 变体range(start, stop)=range(start, stop, step=1),如:range(5,10)==[5,6,7,8,9]
      • 变体range(stop)=range(start=0, stop, step=1),如:range(5)==[0,1,2,3,4]
    • seq(start, stop, length):定长序列
      • 标准range(start, stop, length),如:seq(100,200,5)==[100,125,150,175,200]
      • 变体range(stop, length)=range(star0, stop, length),如:seq(10,5)==[0,2.5,5,7.5,10]
      • 变体range(length)=range(start=0, stop=1, length),如:seq(5)==[0,0.25,0.5,0.75,1]
    • rep(x, n):重复,类似Rrep
      • 标准rep(x, n),如:rep(1,10)==[1,1,1,1,1,1,1,1,1,1]
      • 变体rep([x], [n]),如:rep([9,8,7],[3,2,1])==[9,9,9,8,8,7]
  • 文本操作:
    • string.reverse()字符串倒序,如"abc".reverse()=="cba"
    • string.toMD5()MD5散列,如"abc".toMD5()=="900150983cd24fb0d6963f7d28e17f72"
    • string.toSHA256()SHA256散列,如"abc".toSHA256()=="ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"
    • atob,或string.toBase64()Base64编码,如atob("abc")=="abc".toBase64()=="YWJj"
    • btoa=String.fromBase64Base64编码,如String.fromBase64("YWJj")=="abc"
    • sprintf(fmt, values):C风格字符串格式化,如sprintf("h%cllo w%sld", 101, "or")=="hello world"
    • format(value, fmt):python风格字符串格式化,如format(1110, "#x")=="0x456"
  • 列表操作:
    • array.chunkBy(chunkSize=1)列表分块,指定块大小,如[1,2,3,4,5,6].chunkBy(2)==[[1,2],[3,4],[5,6]]
    • array.chunkTo(chunkNum=1)列表分块,指定块数量,如[1,2,3,4,5,6].chunkTo(2)==[[1,2,3],[4,5,6]]
    • array.T()(二维)列表转置,如[[1,2,3],[4,5,6]].T()==[[1,4],[2,5],[3,6]]
  • 文件系统操作fspath(类似nodejs模块fspath):
    • ls=fs.readdirSync=System.IO.Directory.GetFileSystemEntries列出目录下所有文件和文件夹
    • read=fs.readFileSync=System.IO.File.ReadAllText读取文件中的全部文本为字符串
    • readlines=System.IO.File.ReadAllLines读取文件中的全部文本为字符串列表(按行分割)
    • path.basename(path, suffix)获取文件名并移除指定后缀
    • path.dirname=System.IO.Path.GetDirectoryName获取文件所在路径名
    • path.extname=System.IO.Path.GetExtension获取文件后缀名
    • path.join=System.IO.Path.Combine合并路径
    • path.sep=System.IO.Path.DirectorySeparatorChar目录分隔符
    • path.delimiter=System.IO.Path.PathSeparator路径分隔符
    • path.isAbsolute=System.IO.Path.IsPathRooted路径是否为绝对路径
    • path.posix上述函数的UNIX风格版本
  • 格式转换:as
    • as.numeric:将列表的所有元素转换为数值,或者将多个逗号分隔的数字合并为一个数字(可以用于拼接千分符分隔的数字,如as.numeric(1,234,567.89)==1234567.89
    • as.characters:将列表内的所有元素转换为字符串
  • 剪贴板文本cliptext
  • 补充的常量:
    • 科学常数sci:
      • sci.c=sci.光速=299792458
      • sci.tK=sci.绝对零度=273.15
      • sci.atm=sci.大气压=101325
      • sci.G=sci.引力常数=6.67384e-11
      • sci.N_A=sci.阿伏伽德罗常数=6.02214076e23
      • sci.e=sci.元电荷=1.602176634e-19
      • sci.h=sci.普朗克常数=6.62607015e-34
      • sci.R=sci.气体常数=8.3144621
      • sci.k=sci.玻尔兹曼常数=1.380649e-23
      • sci.μ_0=sci.真空磁导率=4e-7 * π
      • sci.ε_0=sci.真空介电常数=1 / (36e9 * π)
      • sci.m_e=sci.电子质量=9.10938356e-31
      • sci.m_p=sci.质子质量=1.6726219e-27
      • sci.m_n=sci.中子质量=1.674927471e-27
      • sci.V_m=sci.摩尔体积=22.414
    • 字节换算:
      • KB = 1024
      • MB = 1024 ** 2
      • GB = 1024 ** 3
      • TB = 1024 ** 4
    • 时间换算(单位为秒)
      • s = second = 秒 = 1
      • m = minute = 分 = 60
      • h = hour = 时 = 60 * 60
      • D = day = 天 = 24 * 60 * 60
      • month = 月 = 30 * 24 * 60 * 60
      • year = 年 = 365 * 24 * 60 * 60
  • 补充的类:
    • DateTime:日期时间类
      • 构造函数别名$
        • 参数依次为:年、月、日、时、分、秒,如$(2024,4,18,8,20,33)(2024年4月18日8时20分33秒)
        • 参数留空($())则为当前时间
      • 可以直接相减,单位为秒,如:$(2024,4,18,8,20)-$(2024,4,17,18,45)==48900
      • 构造函数别名$U:与$相似,但为UTC时间
    • Time:时间间隔类,会显示为约化后的时间
      • 构造函数函数别名$$,如:$$(4800*分)==3天8小时0分0秒
      • 可以和日期时间配合使用,如$$($(2024,4,18,8,20)-$(2024,4,17,18,45))==13小时35分0秒
    • Color:颜色类
      • 构造函数$crgb/rgbahsl/hslahsv/hsva
      • $c接受十六进制颜色值,如:$c("#ff8800")
      • rgb(a)接受红、绿、蓝、透明度四个参数
      • hsl(a)接受色相、饱和度、明度、透明度四个参数
      • hsv(a)接受色相、饱和度、色值、透明度四个参数
      • 会在实时搜索结果中预览颜色

输出结果会进行简单的格式转换,包括:

  • 数字:字节数(KB/MB/GB)转换、千分符分隔、科学计数法
  • 整数:二进制、八进制、十六进制、分解质因数
  • 字符串:全大写、全小写、首字母大写、base64解编码、url解编码、html解编码

分子量计算

元素区分大小写

数字均代表分子量下标,支持括号,如:CuSO4(H2O)5==249.6846

物理量计算


支持物理量(带单位的数字)运算,会自动保留有效数字

支持换算的单位包括:

  • km(千米)、m(米)、cm(厘米)、mm(毫米)、μm(微米)、nm(纳米)
  • t(吨)、kg(千克)、g(克)
  • h/hr(小时)、min(分钟)、s(秒)
  • A(安培)、mA(毫安)、μA(微安)
  • K(开尔文)
  • mol(摩尔)、mmol(毫摩尔)、μmol(微摩尔)
  • cd(坎德拉)
  • N(牛顿)
  • Hz(赫兹)
  • Pa(帕斯卡)、kPa(千帕)
  • J(焦耳)、kJ(千焦)、eV(电子伏特)
  • W(瓦特)、kW(千瓦)、MW(兆瓦)
  • C(库伦)
  • V(伏特)、kV(千伏)
  • F(法拉)、μF(微法)、nF(纳法)
  • Ω(欧姆)、(千欧)、(兆欧)
  • Wb(韦伯)
  • T(特斯拉)
  • H(亨利)、mH(毫亨)、μH(微亨)
  • lm(流明)
  • lx(勒克斯)
  • Bq(贝可勒尔)
  • Gy(戈瑞)
  • Sv(西弗)
  • L(升)、mL(毫升)、μL(微升)
  • M(摩尔/升)

小数点(.)结尾的数字表示准确数字(无限位有效数字)

@结尾可以指定单位,多余的单位会保留在前面,如5.00V*2.00A*5.min@kW*h==8.33×10⁻⁴kW·h1J@V==1s·A·V

最近更新

修订版本 更新时间 更新说明
8 10天4小时前 添加辅助哈希函数toMD5和toSHA256
修复超长字符串可能引起卡死的问题
7 2024-10-31 00:20 +增加序列函数range, seq和rep
6 2024-09-18 17:55 增加python和C字符串格式化函数format和sprintf

最近讨论

随便聊聊 · 169
H-D-G 2024-07-15 12:38 kongkong1229 2024-08-09 08:50
BUG反馈 · 183
CL 2024-06-30 19:04 CL 2024-07-01 11:01