【发布时间】:2014-09-17 13:38:55
【问题描述】:
var arr1: Array = [34, 8.7, "hello"]
var arr2: Array<Any> = [34, 8.7, "hello"]
println(arr1)
println(arr2)
[34, 8.699999999999999, 你好] [34,8.7,你好]
结果不同,谁能解释一下?
【问题讨论】:
-
浮点精度。计算机只能以一定的精度表示数字。 8.7 和 8.6999999999999 本质上是一样的,不过我只能推测为什么它们的显示不同。
-
正如@vacawama 所指出的,您可以将此问题简化为“为什么
println(NSNumber(double: 8.7))和println(Double(8.7))会给出不同的结果?”