国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序:計(jì)算器(附源碼)

這篇具有很好參考價(jià)值的文章主要介紹了微信小程序:計(jì)算器(附源碼)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

效果圖:

微信小程序:計(jì)算器(附源碼)

代碼實(shí)現(xiàn):

index.js頁(yè)面:(需要引入一個(gè)精確計(jì)算)

//引入精確計(jì)算的js
const acc = require('../../utils/accurate.js');

Page({
  data: {
    num:'0',
    op:''
  },
  result : null,
  isClear : false,
  numBtn(e){
     var num = e.target.dataset.val;
     if(this.data.num === '0' || this.isClear){
       this.setData({num : num});
       this.isClear = false;
     }else{
       this.setData({num : this.data.num + num});
     }
  },
  opBtn(e){
    var op = this.data.op;
    var num = Number(this.data.num);
    this.setData({op : e.target.dataset.val});
    if(this.isClear){
      return;
    }
    this.isClear = true;
    if(this.result === null){
      this.result = num;
      return;
    }
    if(op === '+'){
      this.result = acc.add(this.result, num);
    } else if(op === '-'){
      this.result = acc.sub(this.result, num);
    } else if(op === '*'){
      this.result = acc.mul(this.result, num);
    } else if(op === '/'){
      this.result = acc.div(this.result, num);
    } else if(op === '%'){
      this.result = this.result % num;
    }
    this.setData({num : this.result + ''});
  },
  dotBtn(e){
    if (this.isClear){
      this.setData({num : '0.'});
      this.isClear = false;
      return;
    }
    if (this.data.num.indexOf('.') >= 0){
      return;
    }
    this.setData({ num : this.data.num + '.'});
  },
  delBtn(e){
    var num = this.data.num.substr(0,this.data.num.length - 1);
    this.setData({ num : num === '' ? '0' : num});
  },
  resetBtn(e){
    this.result = null;
    this.isClear = false;
    this.setData({num : '0',op : ''});
  }
})

精確計(jì)算的JS:accurate.js

module.exports = {
  add(arg1,arg2){
    var r1,r2,m;
    try{
      r1 = arg1.toString().split(".")[1].length;
    } catch(e){
      r1 = 0;
    }
    try{
      r2 = arg2.toString().split(".")[1].length;
    } catch(e){
      r2 = 0;
    }
    m = Math.pow(10 , Math.max(r1,r2));
    return (arg1 * m + arg2 * m) / m;
  },
  sub(arg1,arg2){
    var r1,r2,m,n;
    try{
      r1= arg1.toString.split(".")[1].length;
    } catch(e){
      r1 = 0;
    }
    try{
      r2 = arg2.toString().split(".")[1].length;
    } catch(e){
      r2 = 0;
    }
    m = Math.pow(10 , Math.max(r1,r2));
    n = (r1 >= r2)? r1:r2;
    return ((arg1 * m - arg2 * m) / m).toFixed(n);
  },
  mul(arg1,arg2){
    var m = 0,
    s1 = arg1.toString(),
    s2 = arg2.toString();
    try {
      m += s1.split(".")[1].length;
    } catch(e){}
    try {
      m += s2.split(".")[1].length;
    } catch(e){}
    return Number(s1.replace(".","")) * Number(s2.replace(".","")) / Math.pow(10,m);
  },
  div(arg1,arg2){
    var t1 = 0,t2 = 0,r1,r2;
    try {
      t1 = arg1.toString().split(".")[1].length;
    } catch(e){}
    try {
      t2 = arg2.toString().split(".")[1].length;
    } catch(e){}

    r1 = Number(arg1.toString().replace(".",""));
    r2 = Number(arg2.toString().replace(".",""));
    return (r1 / r2) * Math.pow(10,t2 - t1);
  }
}

index.wxml頁(yè)面:

<view class="result">
  <view class="result-num">{{num}}</view>
  <view class="result-op">{{op}}</view>
</view>
<view class="btns">
  <view>
    <view hover-class="bg" bindtap="resetBtn">C</view>
    <view hover-class="bg" bindtap="delBtn">DEL</view>
    <view hover-class="bg" bindtap="opBtn" data-val="%">%</view>
    <view hover-class="bg" bindtap="opBtn" data-val="/">÷</view>
  </view>
  <view>
    <view hover-class="bg" bindtap="numBtn" data-val="7">7</view>
    <view hover-class="bg" bindtap="numBtn" data-val="8">8</view>
    <view hover-class="bg" bindtap="numBtn" data-val="9">9</view>
    <view hover-class="bg" bindtap="opBtn" data-val="*">x</view>
  </view>
  <view>
    <view hover-class="bg" bindtap="numBtn" data-val="4">4</view>
    <view hover-class="bg" bindtap="numBtn" data-val="5">5</view>
    <view hover-class="bg" bindtap="numBtn" data-val="6">6</view>
    <view hover-class="bg" bindtap="opBtn" data-val="-">-</view>
  </view>
  <view>
    <view hover-class="bg" bindtap="numBtn" data-val="1">1</view>
    <view hover-class="bg" bindtap="numBtn" data-val="2">2</view>
    <view hover-class="bg" bindtap="numBtn" data-val="3">3</view>
    <view hover-class="bg" bindtap="opBtn" data-val="+">+</view>
  </view>
  <view>
    <view hover-class="bg" bindtap="numBtn" data-val="0">0</view>
    <view hover-class="bg" bindtap="dotBtn">.</view>
    <view hover-class="bg" bindtap="opBtn" data-val="=">=</view>
  </view>
</view>

index.wxss頁(yè)面:

page {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.result {
  flex: 1;
  background: #f3f6fe;
  position: relative;
}
.result-num{
  position: absolute;
  font-size: 27pt;
  bottom: 5vh;
  right: 3vw;
}
.result-op{
  font-size: 15pt;
  position: absolute;
  bottom: 1vh;
  right: 3vw;
}
.btns {
  flex: 1;
  display: flex;
  flex-direction: column;
  font-size: 17pt;
  border-top: 1rpx solid #ccc;
  border-left: 1rpx solid #ccc;
}
.btns>view {
  flex: 1;
  display: flex;
}
.btns>view>view {
  flex-basis: 25%;
  border-right: 1rpx solid #ccc;
  border-bottom: 1rpx solid #ccc;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
}
.btns>view:last-child>view:first-child {
  flex-basis: 50%;
}
.btns>view:first-child>view:first-child {
  color: #f00;
}
.btns>view>view:last-child {
  color: #fc8e00;
}
.bg {
  background: #eee;
}

index.json:

{
  "navigationBarBackgroundColor": "#fff",
  "navigationBarTitleText": "計(jì)算器",
  "navigationBarTextStyle": "black"
}

源碼包:

百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1PTXK0t44kRJ5onVk9leROw
提取碼:4d2k文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-511973.html

到了這里,關(guān)于微信小程序:計(jì)算器(附源碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序案例——計(jì)算器

    微信小程序案例——計(jì)算器

    1、創(chuàng)建項(xiàng)目 按照慣例,做一些初始化工作 2、設(shè)置導(dǎo)航欄 在 app.json 文件設(shè)置 window 配置項(xiàng) pages/index/index.wxml 文件 1、編寫(xiě)頁(yè)面整體結(jié)構(gòu) 2、編寫(xiě)結(jié)果區(qū)域結(jié)構(gòu) 兩行內(nèi)容:第一行是當(dāng)前的計(jì)算式,第二行是當(dāng)前計(jì)算結(jié)果 3、編寫(xiě)按鈕區(qū)域第一行按鈕的結(jié)構(gòu) 第一行包含四個(gè)按鈕:

    2024年04月11日
    瀏覽(24)
  • 【微信小程序】計(jì)算器案例

    【微信小程序】計(jì)算器案例

    ??今日學(xué)習(xí)目標(biāo):第二十一期——計(jì)算器案例 ?個(gè)人主頁(yè):顏顏yan_的個(gè)人主頁(yè) ?預(yù)計(jì)時(shí)間:30分鐘 ??專(zhuān)欄系列:我的第一個(gè)微信小程序 嗨嗨嗨,好久沒(méi)更新小程序?qū)诹?,本期淺淺用小程序?qū)懸粋€(gè)計(jì)算器。 最終代碼會(huì)上傳至資源噢~ 新建一個(gè)項(xiàng)目,在app.json中配置文件導(dǎo)

    2024年01月17日
    瀏覽(28)
  • 微信小程序3-2 計(jì)算器

    微信小程序3-2 計(jì)算器

    1、創(chuàng)建項(xiàng)目 創(chuàng)建項(xiàng)目微信小程序項(xiàng)目 - 計(jì)算器 單擊【確定】按鈕 按照慣例做一些初始化工作 2、設(shè)置導(dǎo)航欄 在 app.json 文件設(shè)置 window 配置項(xiàng) pages/index/index.wxml 文件 1、編寫(xiě)頁(yè)面的整體結(jié)構(gòu) 2、編寫(xiě)結(jié)果區(qū)域的結(jié)構(gòu) 兩行內(nèi)容:第一行是當(dāng)前的計(jì)算式,第二行是當(dāng)前計(jì)算結(jié)果

    2024年04月26日
    瀏覽(19)
  • 微信小程序案例3-2:計(jì)算器

    微信小程序案例3-2:計(jì)算器

    錄屏演示多次計(jì)算 1、創(chuàng)建項(xiàng)目 創(chuàng)建微信小程序項(xiàng)目 - 計(jì)算器 單擊【確定】按鈕 按照慣例,做一些初始化工作 2、設(shè)置導(dǎo)航欄 在 app.json 設(shè)置 window 配置項(xiàng) pages/index/index.wxml 文件 1、編寫(xiě)頁(yè)面整體結(jié)構(gòu) 2、編寫(xiě)結(jié)果區(qū)域結(jié)構(gòu) 兩行內(nèi)容:第一行是當(dāng)前的計(jì)算式,第二行是當(dāng)前計(jì)算

    2024年04月12日
    瀏覽(108)
  • 微信小程序如何寫(xiě)一個(gè)計(jì)算器

    微信小程序如何寫(xiě)一個(gè)計(jì)算器

    構(gòu)思:1.畫(huà)一個(gè)計(jì)算界面 ? ? ? ? ? ?2.找一個(gè)計(jì)算器實(shí)現(xiàn)庫(kù) ? ? ? ? ? ?3.調(diào)用實(shí)現(xiàn)庫(kù)進(jìn)行計(jì)算 實(shí)現(xiàn):1.畫(huà)出計(jì)算器圖標(biāo)、界面 ?頁(yè)面代碼實(shí)現(xiàn) 樣式代碼 實(shí)現(xiàn)代碼 庫(kù)代碼 ?

    2024年02月11日
    瀏覽(94)
  • 微信小程序如何制作簡(jiǎn)易計(jì)算器

    微信小程序如何制作簡(jiǎn)易計(jì)算器

    1、首先在瀏覽器中輸入\\\"GitHub - dunizb/wxapp-sCalc: :speech_balloon:微信小程序版簡(jiǎn)易計(jì)算器demo,適合入門(mén)練手\\\"網(wǎng)址,輸入完成后會(huì)進(jìn)入到以下這個(gè)界面: 2、點(diǎn)擊旁邊綠色的按鍵 3、點(diǎn)擊之后會(huì)有以下幾個(gè)選項(xiàng): 點(diǎn)擊最后一行的Download ZIP,下載一個(gè)文件 然后解壓一下這個(gè)文件,解壓完

    2024年04月23日
    瀏覽(26)
  • 房貸計(jì)算器微信小程序原生語(yǔ)言

    房貸計(jì)算器微信小程序原生語(yǔ)言

    效果: 輸入 300萬(wàn) 結(jié)果 還款明細(xì) 一共有3個(gè)頁(yè)面 1、輸入頁(yè)面 2、結(jié)果頁(yè)面 3、詳情頁(yè)面 index.wxml文件

    2024年04月28日
    瀏覽(29)
  • uniapp寫(xiě)一個(gè)計(jì)算器用于記賬(微信小程序,APP)

    uniapp寫(xiě)一個(gè)計(jì)算器用于記賬(微信小程序,APP)

    提要:自己用uniapp寫(xiě)了一個(gè)記賬小程序(目前是小程序),寫(xiě)到計(jì)算器部分,在網(wǎng)上找了別人寫(xiě)的計(jì)算器,大多數(shù)邏輯都是最簡(jiǎn)單的,都不能滿(mǎn)足一個(gè)記賬計(jì)算器的基本邏輯。與其在網(wǎng)上找來(lái)找去,還不如自己多搗鼓搗鼓。 https://gitee.com/yapplee/kog-calculator.git 貼部分主要代碼,

    2024年02月05日
    瀏覽(21)
  • 微信小程序入門(mén)項(xiàng)目-做一個(gè)馬馬虎虎的計(jì)算器

    微信小程序入門(mén)項(xiàng)目-做一個(gè)馬馬虎虎的計(jì)算器

    效果: 打開(kāi)微信開(kāi)發(fā)者工具,新建小程序 打開(kāi)app.json設(shè)置頂部的標(biāo)題和顏色 由于小程序不支持JavaScript的一些函數(shù),比如evel(),所以代碼變得復(fù)雜很多。 pagesindexindex.js的代碼:

    2024年02月08日
    瀏覽(21)
  • QT實(shí)現(xiàn)簡(jiǎn)單計(jì)算器(附源碼)

    QT實(shí)現(xiàn)簡(jiǎn)單計(jì)算器(附源碼)

    作為qt初學(xué)者,自己做一個(gè)簡(jiǎn)單計(jì)算器是比較普遍的練習(xí)題,使用widget方式實(shí)現(xiàn)一個(gè)簡(jiǎn)單的計(jì)算器功能。 使用Push Button組件將ui界面布局 顯示界面使用Line Edit組件 將各個(gè)組件槽函數(shù)關(guān)聯(lián) 等于符號(hào)的槽函數(shù)(進(jìn)行加減乘除運(yùn)算) 成功調(diào)試

    2024年02月12日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包