我的结构如下:
struct Foo {
var number: Double
public init(number: Double) {
self.number = number
}
}
但是当我运行这段代码时 ->
var x: Double = 1.12
let foo = Foo(number: x)
print(foo)
print(foo.number)
我得到以下输出:
Foo(number: 1.1200000000000001)
1.12
我认为这是因为 double 但不知道如何处理。非常感谢任何帮助!
最佳答案
正如@MartinR 解释的答案,Why are doubles printed differently in dictionaries?
很明显,1.1200000000000001,是1.12的 double 值。
当您尝试打印 foo 对象时,print(foo)
对象连同其包含的信息一起打印,其中 number
保存 1.21
然而,当您直接print(foo.number)
时,将打印foo.number
的字符串表示形式,实际上是1.21
关于ios - 相同 Double 值的奇怪输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52380354/