如何用swift格式化一個double的字符串? 我正在製作一個計算器,就像iOS上的基本計算器一樣,我需要一個解決方案,根據點後面有多少個字符(總共不超過9位數字)來更改顯示結果。用swift格式化一個double的字符串
Example Table
|result | wished displayed result | current displayed result
| | |
|1.034 | 1.034 | 1.03
|1.000567 | 1.000567 | 1.00
|1.2 | 1.2 | 1.20
使用此代碼:
result.text = String(format: "%.2f", displayNumber)
,如果我得到1.000334因此,它只能顯示1.00
編輯:
我忘了說,我需要不超過包括該點在內的最多9個字符。如果我刪除%.2f
我沒有得到期望的結果,因爲如果我得到1.323429249430003442結果顯示的結果將是1.323429249430003442與許多數字(不能超過9位數包括點),否則添加%.9f
是不好的,因爲如果我得到1.32結果顯示的結果將是1.32000000有很多不必要的零。
謝謝大家提前
EDIT 2(解決):
,如果有人將有助於在未來,我解決了這種方式:
var decimalNumberAsString = "\(resultNumber - floor(resultNumber))"
var decimalTrim: NSArray = decimalNumberAsString.componentsSeparatedByString(".")
numberOfDecimalPlaces = decimalTrim.objectAtIndex(1).length
if numberOfDecimalPlaces < 8 {
numberOfDecimalPlaces = decimalTrim.objectAtIndex(1).length + 1
}
else {
numberOfDecimalPlaces = 7
}
result.text = String(format: "%.\(numberOfDecimalPlaces)G", resultNumber)
請參閱:[格式佔位符](https://en.wikipedia.org/wiki/Printf_format_string#Format_placeholders) – zaph 2014-08-29 16:40:49