let dic : [Double : Double] = [1.1 : 2.3, 2.3 : 1.1, 1.2 : 2.3]
print(dic)// [2.2999999999999998: 1.1000000000000001, 1.2: 2.2999999999999998, 1.1000000000000001: 2.2999999999999998]
let double : Double = 2.3
let anotherdouble : Double = 1.1
print(double) // 2.3
print(anotherdouble) // 1.1
Я не понимаю, почему значения для компилятора печатают из словарей по-разному? Я на Swift 3, Xcode 8. Является ли это ошибкой или каким-то странным способом оптимизации материала или чего-то еще?
ИЗМЕНИТЬ
Что еще более странно:
Некоторые ценности переходят, некоторые идут ниже, некоторые остаются такими, какие они есть! 1,1 меньше 1,1000000000000001, тогда как 2,3 составляет более 2,2999999999999998, 1,2 составляет всего 1,2