我尝试将从JSON文件读取的一个数字转换为浮点数。该数字为0.35,但当我尝试使用as?
转换为浮点数时,它给出nil。以下是代码:
let maxHeight = biome["Max Height"] as? Float
print(biome["Max Height"]) // Prints '0.35'
print(maxHeight) // Prints 'nil'
biome
字典之前被转换为[String:Any]
,这是我能看到的唯一对它有影响的东西。我不知道为什么它返回nil,因为0.35应该是一个有效的浮点数。
我原以为它只会强制转换为浮点型,因为它是浮点型,但事实并非如此。
1条答案
按热度按时间nqwrtyyt1#
JSON解析浮点数将得到
Double
类型的值,而不是Float
。使用:
将给予期望值。如果你真的想要
Float
类型的值,你可以这样做:您应该考虑更改解析JSON的方式,以便将其转换为具有所需类型的适当属性的正确
struct
,而不是最终得到[String: Any]
类型的字典。