快轉到主要內容
Background Image

如何在 Swift 當中透過 String Format 格式來簡單處理數值內容?

·266 字·2 分鐘
乾太 ₍₍ ◝(・◡・)◟ ⁾⁾
作者
乾太 ₍₍ ◝(・◡・)◟ ⁾⁾
一起寫程式的好朋友。
目錄

在開發應用程式時,我們經常會需要做數值轉換成特定格式,例如將小數點數值取兩位就好,或者整數補 0 到十位數,諸如此類的功能,接下來我們就直接進入實際應用。

實際應用
#

不做任何處理,直接將 Float 數值輸出
#

let floatValue: Float! = 1.23456789
let formatString: String! = String(format: "%f", floatValue)
/**
 * Output: 1.234568
 */

將 Float 數值捨去小數點至二位數
#

let floatValue: Float! = 1.23456789
let formatString: String! = String(format: "%.2f", floatValue)
/**
 * Output: 1.23
 */

將 Int 數值轉為 16 進位
#

let hexValue: Int! = 255
let formatString: String! = String(format: "%x", hexValue)
/**
 * Output: ff
 */

將 Int 數值轉為 16 進位,並且補 0 到六位數
#

let hexValue: Int! = 255
let formatString: String! = String(format: "%06x", hexValue)
/**
 * Output: 0000ff
 */

不做任何處理,直接將 Int 數值輸出
#

let intValue: Int! = 123
let formatString: String! = String(format: "%d", intValue)
/**
 * Output: 123
 */

不做任何處理,直接將 Int 數值輸出,並且補 0 到六位數
#

let intValue: Int! = 123
let formatString: String! = String(format: "%06d", intValue)
/**
 * Output: 000123
 */

番外實驗篇
#

let floatValue: Float! = 3.33333333
let formatString: String! = String(format: "%f", floatValue)
/**
 * Output: 3.333333
 */

let floatValue: Float! = 4.44444444
let formatString: String! = String(format: "%f", floatValue)
/**
 * Output: 4.444445
 */

所以這意思是小數點第六位後會以四捨五入的方式來進位囉?這時候我產生了這個疑問,所以在 3.33333345 會因為四捨五入而進位成 3.333334 嗎?於是又做了一些額外實驗。

let floatValue: Float! = 3.33333345
let formatString: String! = String(format: "%f", floatValue)
/**
 * Output: 3.333333
 */

let floatValue: Float! = 3.33333355
let formatString: String! = String(format: "%f", floatValue)
/**
 * Output: 3.333333
 */

let floatValue: Float! = 3.33333366
let formatString: String! = String(format: "%f", floatValue)
/**
 * Output: 3.333334
 */

let floatValue: Float! = 3.33333361
let formatString: String! = String(format: "%f", floatValue)
/**
 * Output: 3.333333
 */

let floatValue: Float! = 3.33333362
let formatString: String! = String(format: "%f", floatValue)
/**
 * Output: 3.333334
 */

這個現象頗為奇妙的,總之先記錄起來,理論上應該無傷大雅。

相關文章

iOS Swift 第三方套件介紹 - TextFieldEffects
·106 字·1 分鐘
超商服務愈來愈方便,現在到超商繳費不用帳單只要用專屬APP,就能下載條碼直接繳費 …
iOS Swift 第三方套件介紹 - NVActivityIndicatorView
·486 字·3 分鐘
NVActivityIndicatorView 是一系列令人驚艷的 Loading 動畫,它採用了向量繪圖的方式來呈現動畫 …
iOS Swift 第三方套件 - OAuthSwift
·332 字·2 分鐘
在 iOS 開發介接第三方 API 相關的應用程式時,我們時常會需要遵循 OAuth 開放標準規範 …