ios - 将 ObjC NSNumber 代码迁移到 Swift 并在显示数字时遇到问题。

标签 ios swift

我正在将我的 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/

相关文章:

ios - 通过 CSS 内容属性在 iOS Safari 中显示 '⤭'

ios - 如何在 CollectionView 中添加 SearchBar?

ios - 在 iOS 中以透明方式播放视频

swift - 如何在初始化期间正确设置 subview 约束?

ios - 即使使用解决方案集更新 Swift 后也无法使用 withMemoryRebound

ios - 调用自定义函数的额外参数?

iphone - 在用户允许应用的位置跟踪后调用选择器

ios - textview的文本在textview下重叠

swift - Gameplaykit 寻路敌人

objective-c - Cocoa Touch 有搜索树数据结构吗?