有过程的算式计算器2.1.1修复小数结果

易语言 2025-02-02 11:41:56

有过程的算式计算器2.1.1修复小数结果

有过程的算式计算器2.1.1

(修复问题:返回到算式编辑框中的小数计算结果没有小数点)

修复代码位置在 算式分析程序集的删除算式中小数多余小数点子程序.

.计次循环首 (取文本长度 (有小数的算式), 算式字符位置) ' 循环算式字符数量的次数。
算式当前字符 = 取文本中间 (有小数的算式, 算式字符位置, 1) ' 每次循环取出算式的一个字符。
.如果真 (是不是运算符 (算式当前字符) = “不是” 且 算式当前字符 ≠ “=”) ' 要是当前字符不是运算符,也不是等于号。
' 收集字符作为运算数,记录小数点的数量,删除第二个小数点。
当前运算数 = 当前运算数 + 算式当前字符 ' 把当前字符记录为运算数的一部分。
运算数字符数量 = 取文本长度 (当前运算数) ' 记录此时运算数的字符数量。
.如果真 (算式当前字符 = “.”) ' 要是算式当前字符是小数点。
运算数的小数点数量 = 运算数的小数点数量 + 1 ' 记录当前运算数小数点的数量。
.如果真 (运算数的小数点数量 > 1) ' 要是当前运算数不止一个小数点。
代码详情.加入文本 (“算式:” + 有小数的算式 + #换行符)
代码详情.加入文本 (“发现运算数 ” + 当前运算数 + “ 有多余的小数点,要删除” + #换行符)
当前运算数 = 取文本左边 (当前运算数, 运算数字符数量 - 1)
代码详情.加入文本 (“删除多余小数点后的运算数:” + 当前运算数 + #换行符)
.如果真结束

.如果真结束

.如果真结束
.如果真 (是不是运算符 (算式当前字符) = “是” 或 算式当前字符 = “=”) ' 要是当前字符是运算符,或者是等于号。
删除多余小数点后的算式 = 删除多余小数点后的算式 + 运算符 + 当前运算数
当前运算数 = “” ' 清空上一个记录运算数。
运算数的小数点数量 = 0 ' 清空上一个运算数记录的小数点数量。
运算符 = 算式当前字符 ' 记录这个运算符。

.如果真结束
.如果真 (取文本长度 (有小数的算式) = 算式字符位置) ' 要是已经识别到最后一个字符。
删除多余小数点后的算式 = 删除多余小数点后的算式 + 运算符 + 当前运算数

.如果真结束

.计次循环尾 ()
代码详情.加入文本 (“删除多余小数点后的算式:” + 删除多余小数点后的算式 + #换行符)