-
此代码是作者出于兴趣爱好自己编写的。转载请注明。
-
作者的邮箱:contactwangpai@163.com
分支 M # 版本 M.2.0
支持的功能:
-
本项目原本是一种供笔者自研计算器使用的数学函数库。现在已从原项目中分离出来,去除了与 GUI 界面相关的内容,只暴露了对外接口。本项目也可以便于一些非计算器,但也需要进行精确计算的项目来使用。
本项目的功能分为单次运算和表达式运算。
-
对于单次运算:
-
支持有理数的四则运算,运算无舍入误差
-
支持大整数的求余、求整数商、乘方、求公倍数、求公约数运算
-
支持分数的约分、整数指数乘方、取整、大小比较运算
-
支持将有理数转化为 double 类型的浮点数,支持生成给定范围内有理数的随机数
-
支持使用含小数点的字符串形式的小数
-
支持大整数的阶乘、排列数、组合数运算
-
-
对于表达式运算:
-
操作数支持多位运算。一个操作数可以是十位数或者更高位数的数
-
操作数支持小数点、负数,运算结果支持显示小数、分数。
-
表达式可以含多个操作数、多个运算符,还可以带括号
-
对输入表达式提供实时自动语法检查与错误定位,并支持检查后的修改
-
对输入无误的表达式进行实时自动无损计算,无运算累计误差,并可选显示详细的计算过程
-
——2022年10月11日
本次更新介绍:
本工程是在本分支的上一版本的基础之上进行的升级。
相对于版本 M.1.0
,本版本 M.2.0
的改进主要有:
- 增加了一个新模块
externally-exposed
。此模块不包含任何对本项目自身有实际有用的代码。此模块是一种对外暴露、含本项目全部必要 Maven 依赖的一个模块。如果希望只通过一个依赖项就可以包含本项目的所有依赖,可以选择此模块依赖 - 新增了阶乘、排列数、组合数计算
- 增加了小于、大于、取整、随机数方法
- 将 Figure 类进行了重构优化。将其内部分为小整数和大整数以大大提高运算效率。按其它项目的运行结果来看,这样做大约至少使运算时间至减少为原来的 1/3
- 将异常进行了归类,分为检查型和非检查型
- 使用了自研的“大整数相除防溢出算法”,修复了有理数转化为 double 类型时的精度损失问题
- 将各模块名进行了改动
本版本的已知不足与预想的改进方案:
- 本版暂无
未来版本可能会实现的功能:
- 本版暂无
- 本项目使用的开发环境:
- JDK 17.0.1 2021-10-19
- Maven 3.8.3
- IntelliJ IDEA 2022.2.1 (Ultimate Edition)
-
总计:5447
-
Java 代码:5012
-
文本语言代码:435
- XML:435
-
程序屏幕输入示例(供复制、自行测试):
2334.623*6345-234/1234+234*(254-45.242)=
-
程序输出结果:
CalculationResultOutput(state=INIT, stateMsg=, promptMsg=, calculationProcess=---------------------- 【1】下面是计算过程: 2334.623 X 6345 - 234 / 1234 + 234 X (254 - 45.242) = [2962636587 / 200] - 234 / 1234 + 234 X (254 - 45.242) = [2962636587 / 200] - [117 / 617] + 234 X (254 - 45.242) = [1827946750779 / 123400] + 234 X (254 - 45.242) = [1827946750779 / 123400] + 234 X [104379 / 500] = [1827946750779 / 123400] + [12212343 / 250] = [9169873816419 / 617000] = 1.4862032117372772E7, result=[9169873816419/617000])