我試圖將字符串轉換爲CGFloat
數字。 如果等於0
,我的代碼將刪除最後一位數字。Swift 2 - 向CGFloat添加十進制0
如何防止切出零點?
let str = "17.30"
let flt = CGFloat((str as NSString).doubleValue) + 2.0
print(flt) // 19.3 -- should be 19.30
我試圖將字符串轉換爲CGFloat
數字。 如果等於0
,我的代碼將刪除最後一位數字。Swift 2 - 向CGFloat添加十進制0
如何防止切出零點?
let str = "17.30"
let flt = CGFloat((str as NSString).doubleValue) + 2.0
print(flt) // 19.3 -- should be 19.30
CGFloat
不能做到這一點,轉換浮動回String
print(String(format: "%.2f", flt)) // 19.30
的CGFloat
只是一個數字(所以17.3
和17.30
是它的值相同);你真正擔心的是如何設置CGFloat
號碼的String
表示。
作爲替代@vadian:■解決方案,你可以使用一個NSNumberFormatter
的如下
/* Your CGFloat example */
let str = "17.30"
let flt = CGFloat((str as NSString).doubleValue) + 2.0
/* Use NSNumberFormatter to display your CGFloat
with exactly 2 fraction digits. */
let formatter = NSNumberFormatter()
formatter.maximumFractionDigits = 2
formatter.minimumFractionDigits = 2
print(formatter.stringFromNumber(flt)!)
/* 19.30 */
你是不是想保留原來的字符串中使用的精確度(小數點後的數字),或者你總是想用2個小數格式化結果? – Stefan
我試圖格式總是結果2小數 – SNos
@SNOS如果你想轉換爲字符串的數字,使用'NSNumberFormatter'。 – Sulthan