我正在将我的 ObjC 应用程序迁移到 Swift,但遇到了一个特殊问题。
我的应用程序读取一个 JSON 文件并从中构建一个模型。从 JSON 中读取的数字曾经分配给 NSNumber。有些数字是整数(例如 60),有些数字有小数部分(例如 60.23)。
当我在我的应用程序中显示这些数字时,60 将是 60(而不是 60.0)并且小数会正确显示。
现在我正在编写 Swift 代码并将从 JSON 读取的数字分配给 Double。即使我使用 let x=String(myDouble) 数字 60 也总是会出现 60.0
我不想要这个...但我不能只将它格式化为 %f 因为我永远不知道数字是整数还是有小数部分。
我真的需要检查它是否是一个整体然后使用它 %f 格式化它吗?
我在 Swift 中遗漏了什么吗?现在,ObjC 代码的行为符合我的要求,Swift 似乎为我提供了整数的小数位数。
最佳答案
你可以使用 NSNumberFormatter
。
let number1 : Double = 60
let number2 = 60.23
let numberFormatter = NSNumberFormatter()
numberFormatter.numberStyle = .DecimalStyle
let number1String = numberFormatter.stringFromNumber(number1) // "60"
let number2String = numberFormatter.stringFromNumber(number2) // "60.23"
关于ios - 将 ObjC NSNumber 代码迁移到 Swift 并在显示数字时遇到问题。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33694811/