NSNumberFormatter等效于stringWithFormat

时间:2015-07-21 09:17:09

标签: ios swift

如果达到给定数量的有效数字(类似于stringWithFormat(" .5g"),我想将双精度转换为自动(!)从十进制切换到科学的字符串!)。 例子:

55555 -> "55555"
55555.55 -> "55556"
555555.55 -> "5.5556E+05"

我无法弄清楚如何使用" NSNumberFormatter()。stringFromNumber"?

你能帮帮我吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

这是我的解决方案,到目前为止(有人知道更好吗?):

extension NSNumberFormatter {
    func autoStringFromNumber (number: Double) -> String? {
        if abs(number) >= Double(10.power(maximumSignificantDigits)) {
            self.numberStyle = NSNumberFormatterStyle.ScientificStyle
        }else{
            self.numberStyle = NSNumberFormatterStyle.DecimalStyle
        }
        return self.stringFromNumber(number)
    }
}