swift: Problem beim Konvertieren eines Strings nach double

Hier ist ein einfacher Code in Xcode 7.3.1 Spielplatz:

var str = "8.7" print(Double(str))

die Ausgabe ist überraschend:Optional(8.6999999999999993)

ebenfalls,Float(str) gibt:8.69999981

Irgendwelche Gedanken oder Gründe zu diesen Jungs? Hinweise darauf wären willkommen.

Auch, wie soll ich dann "8.7" nach 8.7 als Double (oder Float) konvertieren?

Bearbeite

in swift:

(str als NSString) .doubleValue gibt 8.7 zurück

Now, das ist ok. Aber meine Frage wird immer noch nicht vollständig beantwortet. Wir haben eine Alternative gefunden, aber warum können wir uns nicht auf Double ("8.7") verlassen. Bitte geben Sie einen tieferen Einblick in diese.

Edit 2

("6.9" als NSString) .doubleValue // druckt 6.9000000000000004

So öffnet sich die Frage wieder.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage