ios - NSNumberFormatter 等价于 stringWithFormat

标签 ios swift

如果达到给定的有效位数,我想将 double 转换为字符串,并自动(!)从十进制切换到科学数(类似于 stringWithFormat(“.5g”)!)。 示例:

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

我不知道如何使用“NSNumberFormatter().stringFromNumber”来做到这一点?

你能帮我吗? 谢谢!

最佳答案

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

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)
    }
}

关于ios - NSNumberFormatter 等价于 stringWithFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31534987/

相关文章:

c# - xamarin 意图扩展与 netstandard 导致 MT2001 错误

swift - 类型 'SecondPageController' 的值没有成员 'miniView'

ios - Google App Indexing 没有解决 Swift 问题?

ios - NSDate -dateFromString返回nil

ios - 如何在 iOS 中隐藏实现文件中的代码

android - IOS 和 Android (Unity) 开发的差异

ios - Swift Little endian 十六进制值到十进制

ios - 可选值的 NSCoder decodeDouble

swift ,UIKit : How can I diagnose EXC_BAD_INSTRUCTION in UIKit on tableView. PerformBatchUpdates()

ios - 将图像添加到 uitableview 单元格