質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

476閲覧

余剰計算 エラーが取れません

kuroneko31

総合スコア10

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/07/22 07:39

前提・実現したいこと

電卓アプリの小数点以下が0の時に小数点以下を切り捨てる処理をしたいです。
まず、計算結果が少数を含む場合を考えています

発生している問題・エラーメッセージ

'%' is unavailable: For floating point numbers use truncatingRemainder instead

該当のソースコード

let isIntegerP = floor(previousNumver) == previousNumver let isIntegerN = floor(numberOnScreen) == numberOnScreen if previousNumver % numberOnScreen != 0 || isIntegerP == false || isIntegerN == false { result.text = String(format:"%.0f",result.text ?? 0 )

以下コード全文

import UIKit
import Foundation

class ViewController: UIViewController {

var numberOnScreen:Double = 0; var previousNumver:Double = 0; var performingMath:Bool = false var operation = 0; @IBOutlet weak var formula: UILabel! @IBOutlet weak var result: UILabel! @IBOutlet weak var buttonA: UIButton! @IBAction func numbers(_ sender: UIButton) { if performingMath == true { switch (sender.tag) { case 1...10: result.text = String(sender.tag-1) formula.text! += String(sender.tag-1) numberOnScreen = Double(result.text!)! performingMath = false default: formula.text! += "." result.text! += "." buttonA.isEnabled = false } } else { switch (sender.tag) { case 1...10: result.text! += String(sender.tag-1) formula.text! += String(sender.tag-1) numberOnScreen = Double(result.text!)! default: formula.text! += "." result.text! += "." buttonA.isEnabled = false } } } @IBAction func root(_ sender: UIButton) { if formula.text != "" && sender.tag != 11 && sender.tag != 16 { previousNumver = Double(result.text!)! if sender.tag == 17{ formula.text! += "√" result.text = String(sqrt(previousNumver)) } else if sender.tag == 18{ formula.text! += "%" result.text = String(previousNumver / 100) } } } @IBAction func buttons(_ sender: UIButton) { // if formula.text != "" && sender.tag != 11 && sender.tag != 16 { previousNumver = Double(result.text!)! if sender.tag == 12{ result.text = "+" formula.text! += "+" } else if sender.tag == 13{ result.text = "-" formula.text! += "-" } else if sender.tag == 14{ result.text = "×" formula.text! += "×" } else if sender.tag == 15{ result.text = "÷" formula.text! += "÷" } operation = sender.tag performingMath = true buttonA.isEnabled = true } else if sender.tag == 16 { if operation == 12{ result.text = String(previousNumver + numberOnScreen) } else if operation == 13{ result.text = String(previousNumver - numberOnScreen) } else if operation == 14{ result.text = String(previousNumver * numberOnScreen) } else if operation == 15{ result.text = String(previousNumver / numberOnScreen) } let isIntegerP = floor(previousNumver) == previousNumver let isIntegerN = floor(numberOnScreen) == numberOnScreen if previousNumver % numberOnScreen != 0 || isIntegerP == false || isIntegerN == false { result.text = String(format:"%.0f",result.text ?? 0 ) } } else if sender.tag == 11{ result.text = "" formula.text = "" previousNumver = 0; numberOnScreen = 0; operation = 0; buttonA.isEnabled = true } } override func viewDidLoad() { result.text = "" formula.text = "" }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2019/07/22 07:51

「'%' is unavailable: For floating point numbers use truncatingRemainder instead 」を無視しないであげてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問