let hexString = "0x42f9b6c9"
let toInt = Int32(truncatingBitPattern: strtoul(self, nil, 16))
let toFloat = Float(bitPattern: UInt32(self))
结果:124.857
let hexString = "0xc2f9b6c9"
let toInt = Int32(truncatingBitPattern: strtoul(self, nil, 16))
let toFloat = Float(bitPattern: UInt32(self))
应用程序在此崩溃,因为值为负数,预期结果为 -124.857
请帮忙。谢谢!
最佳答案
strtoul
表示字符串为无符号长整型。尝试strtol
关于swift - 如何在 Swift 中将十六进制转换为有符号 float ?对于正数工作正常,但对于负数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42799129/