Swift 字串 / 數字轉換

大家都知道,日本在2019年10月開始要調整消費稅的稅率,其中最惱人的就是許多不能免稅的地方有區分內用和外帶的稅金差異,對於常去日本的我來說,確實有點麻煩,舉例來說:

「去麥當勞、吉野家、松屋等,外帶餐點就適用 8% 消費,選擇在店內用餐,消費稅就會收取 10% ;叫外賣(例如披薩)外帶食物回家,消費稅為 8% ,但相同的食品如果坐在店內享用,消費稅就是 10% ;便利商店更有趣了,假設你買了飯糰跟飲料,如果是外帶,消費稅為 8% ,如果在店內設置的座位區坐下來吃,就屬於外食,消費稅為 10% 。總之,在有桌椅的地方,選擇店內用餐就是收取 10% 消費稅。」(內容取自三立新聞網:https://www.setn.com/News.aspx?NewsID=589132

因此我想要建立一個 App 幫助我在這些時候計算總價以及若是能退稅的話,到底可以退多少錢給我。開始說明之前,先來看一下完成後的成品:

這次的畫面比較單純,也沒有漂亮的圖片,純粹是一些功能上的練習,透過一些功能的定義,來建立一個幫助我們出國時計算稅金的 App。

那接下來講述程式碼的部分,先定義所需要的變數:

@IBOutlet weak var Price: UITextField!@IBOutlet weak var taxRate: UITextField!@IBOutlet weak var taxResult: UILabel!@IBOutlet weak var taxRefund: UILabel!@IBOutlet weak var taxSwitch: UISwitch!

看了上面的 GIF 畫面可以發現,在輸入金額與稅金的欄位,出現的鍵盤都是數字鍵盤,不能輸入文字,要像這樣在 TextField 裡面指定要使用的鍵盤類型的話,可以在屬性頁面指定,像下圖一樣:

接著就是功能的建立,這邊有個重點是收起鍵盤,以及要將字串與數字作轉換的部分需要注意:

@IBAction func calculate(_ sender: Any) {//        按下計算按鈕收起鍵盤view.endEditing(true)//        定義在計算功能裡需要的變數,重點是要訂要變數的型別,如Double, Int...等等var intPrice = Double(0)var intTax = Double(0)var taxPrice = 0var reFund = 0//        判斷如果計算含稅開關開啟,變計算含稅金額,否則計算退稅金額if taxSwitch.isOn {taxRefund.text = "0"intPrice = Double(Price.text!)!print(intPrice)//            這邊重要!!不同型別的數物件不能做計算,所以要先把物件的型別統一intTax = Double(taxRate.text!)! / 100 + Double(1)taxPrice = Int((intPrice * intTax))taxResult.text = taxPrice.description}else {taxResult.text = "0"intPrice = Double(Price.text!)!intTax = Double(taxRate.text!)! / 100 + Double(1)reFund = Int(intPrice - (intPrice / intTax))taxRefund.text = reFund.description}}

經由這樣的過程,就能完成一個陽春版的稅率計算功能 App 了。

那同樣的這次的分享就到這邊,下次見囉!

--

--