wxml

<view class='content'><input value='{{calculation}}'></input><view class='box'><button class='yellow-color'>退格</button><button class='yellow-color' bindtap='empty'>清屏</button><button class='yellow-color'>❤</button><button bindtap='add' data-text='+' class='yellow-color'>+</button></view><view class='box'><button bindtap='add' data-text='9'>9</button><button bindtap='add' data-text='8'>8</button><button bindtap='add' data-text='7'>7</button><button bindtap='add' class='yellow-color' data-text='-'>-</button></view><view class='box'><button bindtap='add' data-text='6'>6</button><button bindtap='add' data-text='5'>5</button><button bindtap='add' data-text='4'>4</button><button bindtap='add' class='yellow-color' data-text='*'>*</button></view><view class='box'><button bindtap='add' data-text='3'>3</button><button bindtap='add' data-text='2'>2</button><button bindtap='add' data-text='1'>1</button><button bindtap='add' data-text='/' class='yellow-color'>÷</button></view><view class='box'><button bindtap='add' data-text='0'>0</button><button bindtap='add' data-text='.'>.</button><button>历史</button><button class='yellow-color' bindtap='res'>=</button></view></view>

wxss

input {width: 95%;height: 250rpx;margin: 0 auto;margin-bottom: 20rpx;border-bottom: 1rpx solid #ccc;
}.box {display: flex;
}
button {width: 20%;height: 150rpx;margin-bottom: 20rpx;line-height: 150rpx;background-color:rgb(0, 150, 250);color: white;
}.yellow-color {background-color: rgb(247, 142, 24)
}

JS

//index.js
//获取应用实例
const app = getApp()Page({data: {calculation:"",result:0,character:[],  // 运算符号operand: [],    // 数字temp:false},// 输入框输入数据add:function(e) {let input = e.currentTarget.dataset.text;var that = this;if (input == '+' || input == '-' || input == '*' || input == '/') {this.data.temp = false; // 用于记录上一次是否是操作符var item = 'character[' + this.data.character.length+ ']';this.setData({[item] :input}) } else {var item = 'operand['+this.data.operand.length+']';if(that.data.temp) {// 拿到前一个的值var res = 'operand[' + (this.data.operand.length-1) + ']'var ress= that.data.operand.length-1;var xyz = that.data.operand[ress] * 10 + parseInt(input);that.setData({[res]:xyz})} else {input = parseInt(input);that.data.temp = true;that.setData({[item]: input})}}// 将所有的内容放到显示框中this.setData({calculation:this.data.calculation+input})},// 计算答案res:function() {console.log(this.data.character.length);console.log(this.data.operand.length)var character_len =  this.data.character.length ;var operand_len = this.data.operand.length;console.log(operand_len - character_len)if(operand_len - character_len == 1) {this.data.result = this.data.operand[0];console.log("初始值"+this.data.result);for(var i=0;i<character_len;i++) {if(this.data.character[i] == '+') {this.data.result = this.data.result + this.data.operand[i + 1];}if (this.data.character[i] == '-') {this.data.result = this.data.result - this.data.operand[i + 1];}if (this.data.character[i] == '*') {this.data.result = this.data.result * this.data.operand[i + 1];}if (this.data.character[i] == '/') {this.data.result = this.data.result / this.data.operand[i + 1];}}} else {this.setData({result:'输入有误,清空数据,重新输入'})}this.setData({calculation:this.data.result})},// 清空屏幕empty:function() {this.setData({calculation: "",result: 0,character: [],  // 运算符号operand: [],    // 数字temp: false}}
})

如果感觉这篇文章对你有帮助,加个关注吧!!!

也可关注我的公众号,我们一起交流。

微信小程序实现简单的计算器功能相关推荐

  1. 微信小程序之简单商城部分功能总结

    前段时间,突然接到公司得一个需求,叫我去做一个微信小程序得开发,类似一个商城的开发,然后基本看了看微信小程序的开发文档就着手开始做了,为了节约前端一些基本布局啥的,在某宝1.99买了个框架快速搭建了前 ...

  2. 微信小程序实现简单定位功能

    微信小程序实现简单定位功能,简单易读,获取经纬度信息 在pages下创建一个单页如local local.js如下 var app = getApp() Page({ data:{latitude:' ...

  3. 【微信小程序系列】微信小程序超简单教程,基本语法,获取用户基本数据信息,实现对云数据库的增删改查及小程序外部api的引用示例(附源码)

    [微信小程序系列]微信小程序超简单教程 小程序项目结构 静态页面的构成 HTML:结构 css:样式 js:行为 小程序 页面全部存放在pages, 而且pages目录只能存放页面 页面包括4个文件, ...

  4. 微信小程序的简单介绍

    微信小程序的简单介绍 1.与HTML的区别 HTML 微信小程序 <div></div> <view></view> <h1></h1 ...

  5. uni-app 微信小程序 模仿 app二层楼功能

    uni-app 微信小程序 模仿 app二层楼功能 先占个坑,今天应该写不完, 后续在慢慢补全 更新 终于写完了 这个的计算量很大,我自己的安卓机测试的时候一卡一卡的,公司同事的iphone是没有问题 ...

  6. 微信小程序分销系统有哪些功能及优势?

    一.微信小程序分销系统有哪些功能? 1.商品管理 2.订单管理 3.分销管理              4.财务管理 5.数据统计 二.微信小程序分销系统为何如此火爆? 1.微信小程序分销系统拥有AP ...

  7. 微信小程序云开发实现退款功能

    微信小程序云开发实现退款功能 官方文档 小程序云开发实现微信支付 官方文档非常的简单,也没有示例代码,只是列出了许多需要的参数,对于新手来说会可能有点迷糊.可以我的步骤跟着一步一步来. 一.获取退款A ...

  8. 微信小程序 - 实现左滑动删除功能

    微信小程序 - 实现左滑动删除功能 效果图: 实现过程: 一.wxml布局 这里我是先用了一个大盒子包裹小盒子,然后小盒子里面进行左右布局(左边为内容部分,右边为删除按钮)的方式实现的 <vie ...

  9. 微信小程序购物车 数量加减功能

    微信小程序购物车 数量加减功能 wxml <!-- 主容器 --> <view class="stepper"> <!-- 减号 --> < ...

最新文章

  1. 八大排序算法合集 (归并排序、交换排序、插入排序、选择排序......)
  2. 健康很重要 程序员应该坚持正确的坐姿工作
  3. XP 终端服务组件 恢复补丁包 terminal service patch
  4. python事件触发机制_Python3-事件驱动、IO模型和触发方式
  5. java环境变量设置xp_java环境变量设置方法
  6. 洛谷P2483 Bzoj1975 [SDOI2010]魔法猪学院
  7. OpenGL ES 2.0 Shader相关介绍
  8. jQuery 1.11 / 2.1 beta 版发布
  9. Spring IOC学习心得之BeanPostProcessor,BeanNameAware,BeanClassLoaderAware,BeanFactoryAware接口是如何起作用的
  10. Python多人聊天室
  11. mysql5.7.17启动失败_解决Mysql5.7.17在windows下安装启动时提示不成功问题
  12. 音视频5.1——MediaCodec 同步方式完成AAC硬解成PCM
  13. HTML李峋同款爱心代码源码分享,手机网页爱心代码源码
  14. BLE低功耗蓝牙和传统蓝牙的五大区别
  15. 如何把vmware 10变成英文版。。。
  16. python挖矿木马_centos7系统被入侵,挂载挖矿木马-pamdicks-(1)临时处理
  17. QueryWrapper方法解释
  18. 【117】基于完全同态加密的改进计算委托
  19. 2022-2027年中国灵芝孢子粉行业市场全景评估及发展战略规划报告
  20. Oracle账号注册、下载、安装与卸载

热门文章

  1. 我们不是大数据的人质
  2. Zepto.js框架
  3. 计算机毕业设计安卓Android的家教平台软件app(源码+系统+mysql数据库+Lw文档)
  4. 区块链关键技术3(笔记)
  5. 代码重构的常用方法(C++实现)
  6. 纯Css翻书效果详解
  7. 数据结构 树 思考题2
  8. OPENCV图像处理基础
  9. python父类以及子类
  10. 专访5位技术人,探秘AI职业背后的故事