             }
             // labelに押された値を表示
             resultLabel.text = resultLabel.text! + num
-            
-            // 途中結果を表示させる
-            harfResultLabel.text = leftOperand! + " " + centerOperator + " " +  rightOperand!
         }
+        
+        is_end = false
+        refresh()
     }
     
     // ドットが押されたときの処理
     @IBAction func tappedDot(_ sender: UIButton) {
         
-        resultLabel.text = resultLabel.text! + "."
+        if !hasDot(origString: resultLabel.text!) {
+            resultLabel.text = resultLabel.text! + "."
+            
+            is_end = false
+            refresh()
+        }
     }
-    
+
     // =が押されたときの処理
     @IBAction func tappedEqual(_ sender: UIButton) {
-        
-        // ラベルに表示されている値を右辺として変数に代入
-        rightOperand = resultLabel.text
-        // 途中経過を表示
-        harfResultLabel.text = leftOperand! + " " + centerOperator + " " +  rightOperand!
-        // 計算させる関数
-        calculate()
+        if is_end == false {
+            // ラベルに表示されている値を右辺として変数に代入
+            rightOperand = resultLabel.text
+            // 途中経過を表示
+            harfResultLabel.text = leftOperand! + " " + centerOperator + " " +  rightOperand!
+            // 計算させる関数
+            calculate()
+            // 計算の終了
+            is_end = true
+        }
+        refresh()
     }
     
     // クリアボタンが押されたときの処理

        }
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.

            // 左辺の値を確定し、
            leftOperand = resultLabel.text!
            // 次の値を受け付ける
            rightOperand = ""

            resultLabel.text = ""
        }
        // すでに確定している場合で、operatorもsetしてあったら
        else if (centerOperator != "") {
            /*
            print("do calc")
            // ラベルに表示されている値を右辺として変数に代入
            rightOperand = resultLabel.text

            // 計算させる関数
            calculate()
            
            // calculate()を実行した結果がresultLabelに表示されるので、それをさらにleftOperandに登録して,後に演算子を登録
            leftOperand = resultLabel.text
            
            // 数値の受付
            resultLabel.text = ""
            */
        }
        
        // pushされた演算子を変数に格納
        if let ope: String = sender.currentTitle {
            centerOperator = ope
        }
        
        is_end = false
        refresh()
    }

    /* 数字が押されたときの処理 */
    @IBAction func tappedNum(_ sender: UIButton) {
        
        if is_end == true {
            resultLabel.text = ""
            harfResultLabel.text = ""
        }
        
        // 押された値がしっかり取得できていれば、それを表示させる
        if let num: String = sender.currentTitle {
