博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
支持四则运算的计算器的实现算法
阅读量:5327 次
发布时间:2019-06-14

本文共 891 字,大约阅读时间需要 2 分钟。

1.      四则运算的实现算法

  a.      对于一个输入表达式,分别找到表达式中  "*" , "/" , "+" , "-" 在表达式中的位置。

  b.      如果“*",“/“ 符号存在,则位置靠前的运算符为当前选定运算符。

  c.      如果“*",“/“ 符号不存在,则位置靠前的 "+" 或者  "- " 为当前选定运算符。

  d.      从选定运算符的左边向左遍历,截取左操作数,遇到新的运算符或者表达式的第一个字符,则遍历结束。取得左操作数,并记下左操作数的起始位置。

  e.      同理,获取右操作数,并记下右操作数的结束位置。

  f.       将左右操作数参与运算的结果,插入回原来表达式 (替换掉左操作数的起始位置 和 右操作数的结束位置之间)

  g.      返回,继续按照同样的顺序计算,直到当前表达式不含有加减乘除运算符,则认为运算结束。

2.      运算符号(+,-,*,/)的输入响应

  a.      当前输入字符串的最后一个字符如果不是数字,则将最后的字符替换成当前的字符。

3.      小数点的输入响应

  a.      从当前输入字符串末端开始获取当前运算因数,如果当前运算因数为空,则在输入字符串后拼接上"0.";

  b.      当前运算因数不为空,但是当前因数已经包含小数点,则忽略当前小数点;

  c.      当前运算因数不为空,并且未包含小数点,则在输入字符串后加上小数点。

4.      等号的响应

  a.      计算最后结果,不是数字时(小数点或者运算符号),去掉最后一个字符;

5.      数字键的响应

  a.      上一次有效输入是“=”,则应该先清空上一次的计算,开始新一轮的计算。

6.      Javascript 浮点数计算精度问题

  a.      0.2 + 0.1 结果不等于0.3. 原因跟计算机对于浮点数的编码规则有关,计算机组成原理提到这个问题,具体细节忘了。

  b.      解决办法:先将参与运算的操作数提升成整数,运算,然后再降低。

  c.      0.2 - > 2 , 0.1 -> 1, 0.3 -> 3

 程序地址: 

转载于:https://www.cnblogs.com/liujiangyi/p/6120155.html

你可能感兴趣的文章
CentOS安装CAS 5.3.4服务端
查看>>
CentOS6.2(64bit)下mysql5.6.16主从同步配置
查看>>
sqlalchemy query函数可用参数有哪些?
查看>>
一个简单的反射拷贝一份新的实体类
查看>>
selenium+python在Windows的环境搭建
查看>>
Git bash使用中...
查看>>
DirectSound---输出设备基本操作(枚举、查询等)
查看>>
css之px自动转rem—“懒人”必备
查看>>
Eclipse中设置自定义文档签名
查看>>
小程序
查看>>
责任链模式
查看>>
【刷题中】
查看>>
ui-router 之 $state.go
查看>>
nodejs while-loop
查看>>
使用Xcode打包上传APP
查看>>
poj 2560 Freckles
查看>>
jenkins + maven + nexus + [ svn 或 GitLab 或 GitHub ]
查看>>
iOS 一种很方便的构造TarBar
查看>>
团队介绍
查看>>
C++ 指针二维数组, C++二维指针数组笔记
查看>>