2017-11-02 10 views
-1

編集を小数点ボタンを追加:私の電卓アプリに

@IBAction func decimal(_ sender: UIButton) 
    { 
     label.text = label.text! + String(decimal) 
     numberOnScreen = Double(label.text!)! 
     performingMath = true 
     do { 
     previousNumber = Double(self.label.text!)! 

    } 
    } 

そのまだない代わりにその番号をクリアしてちょうど10進数にラベルを変更し、既に押された数に小数点を追加します。また数学を正確に実行していない

私は電卓に小数点を追加したいと思います。

ボタンをアクションとして追加すると、小数点として動作するようにコードを作成する方法を教えてください。 他のボタンをコーディングした同じフォーマットでコード化したいと思います。 一度押された前の数字を表示し、小数点を使用して数学を実行し、小数点付きのBoolを表示する必要があります。

イム初心者と自己は、私はチュートリアル以下、これをコード化された誰かが私には、小数点ボタンをプログラムする助けてください可能性があり、チュートリアルは小数点

を追加する方法を示さなかった を教えました。

@IBOutlet weak var label: UILabel! 


@IBAction func numbers(_ sender: UIButton) 
{ 
    if performingMath == true 
    { 
     label.text = String(sender.tag-1) 
     numberOnScreen = Double(label.text!)! 
     performingMath = false 
    } 
    else 
    { 

    label.text = label.text! + String(sender.tag-1) 
    numberOnScreen = Double(label.text!)! 
} 
} 


@IBAction func button(_ sender: UIButton) 
{ 
    if label.text != "" && sender.tag != 11 && sender.tag != 16 
    { 
    previousNumber = Double(label.text!)! 

     if sender.tag == 12 //Divide 
     { 
     label.text = "/"; 
     } 
    else if sender.tag == 13 //Multiply 
     { 
     label.text = "x"; 
     } 
    else if sender.tag == 14 //Minus 
     { 
     label.text = "-"; 
     } 
    else if sender.tag == 15 //Plus 
     { 
     label.text = "+"; 
     } 

    operation = sender.tag 
    performingMath = true; 
} 
    else if sender.tag == 16 
{ 

if operation == 12 
{ 
    label.text = String(previousNumber/numberOnScreen) 
} 


    else if operation == 13 
{ 
    label.text = String(previousNumber * numberOnScreen) 
} 


    else if operation == 14 
    { 
    label.text = String(previousNumber - numberOnScreen) 
    } 


    else if operation == 15 
    { 
    label.text = String(previousNumber + numberOnScreen) 
    } 
    } 
    else if sender.tag == 11 
    { 
     label.text = "" 
     previousNumber = 0; 
     numberOnScreen = 0; 
     operation = 0; 


} 
} 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 

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


} 
+0

'' label'に '' label'をまだ追加していない場合は追加してください。表示ラベルが空の場合は、ディスプレイ 'label'を' '0 ''にします。' 'numberOnScreen = Double(label.text!)!'を実行します。 – vacawama

答えて

0

//私の割合のボタン上のタグ番号をメモします、これは割合ボタン用です、あなたのコードの下にこれを参加あなたがパーセントボタンからCTRLドラッグする必要があります18覚えています@IBActionファンクションボタン(_発信者:UIButton)へのストーリーボード

else if sender.tag == 11 
      { 
       label.text = "" 
       previousNumber = 0; 
       numberOnScreen = 0; 
       operation = 0; 
    } 
      else if sender.tag == 18 
      { 
       if operation == 12 
       { 
       label.text = String(previousNumber/(previousNumber * (numberOnScreen/100))) 
       } 
       else if operation == 13 
       { 
        label.text = String(previousNumber * (previousNumber * (numberOnScreen/100))) 
       } 
       else if operation == 14 
       { 
        label.text = String(previousNumber - (previousNumber * (numberOnScreen/100))) 
       } 
       else if operation == 15 
       { 
        label.text = String(previousNumber + (previousNumber * (numberOnScreen/100))) 
       } 
    } 
}