gpt4 book ai didi

ios - Swift .isNaN 了解它是如何工作的

转载 作者:搜寻专家 更新时间:2023-11-01 06:17:18 24 4
gpt4 key购买 nike

我目前在理解 .isNan 的工作原理方面遇到了问题。

我正在维护一个不是我自己开发的应用程序(在 Swift 2.3 中)。

我们从这段代码中遇到了很多崩溃,据我所知,我不明白这是怎么回事。

这是方法,它只是一个格式化方法,用于通过测试不同的情况为您的标签设置适当的值。

    static func formatFloat(float: Float?, withMaxDigits
max: Int, andUnit unit: String) -> String {

var label: String = "-"

if let float = float {

let numberFormatter = NSNumberFormatter()
numberFormatter.numberStyle = NSNumberFormatterStyle.DecimalStyle
numberFormatter.minimumFractionDigits = 0
numberFormatter.maximumFractionDigits = max
numberFormatter.roundingMode = .RoundHalfUp

if !float.isNaN {
var formattedValue = numberFormatter.stringFromNumber(float)!
if(formattedValue == "-0")
{
formattedValue = "0"
}
label = "\(formattedValue) \(unit)"
}
}

return label
}

我说的对吗,它只是检查以确定值是否为 NaN,以便测试所有内容,并相应地设置文本?

我读了一些帖子/文档,但我不明白这一点:

In some languages NaN != NaN, but this isn't the case in Cocoa.

nil 和 NaN 呢?我的意思是 isNan 检查是否正确?

最佳答案

IEEE 浮点规范记录了表示 NaN 无效结果的某些位模式。

nil 不同于 NaN。在 Swift 中,只有可选项可以包含 nil,它表示没有值。

NaN 表示您执行了一些导致无效结果的操作。您应该检查 isNaN 属性以查看数字是否包含 NaN。

编辑:

请注意,有不同的值被标记为 NaN,因此一个 .NaN 值可能不等于另一个 .NaN

关于ios - Swift .isNaN 了解它是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41752145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com