Ich bemerkte, dass einige Fließkommawerte unterschiedlich konvertiert wurden. This question helps me about floating points aber immer noch nicht wissen, warum das passiert? Ich habe zwei Screenshots aus dem Debug-Modus über den Beispielcode hinzugefügt. Beispielwerte: 7.37 und 9.37. Begegnete es in schnellen und sicher schnellen Anwendungen IEEE 754 floating point standard Pls erklären, wie das passiert? Wie endete die Bekehrung anders?Warum passiert das bei der Fließkomma-Konvertierung?
if let text = textField.text {
if let number = formatter.number(from: text) {
return Double(number)
}
return nil
}
Fließkommazahlen haben * endliche Genauigkeit * - welcher Teil der Antwort, die Sie verknüpft haben, ist nicht klar? –
Vergleichen http://stackoverflow.com/a/39777334/1187415: Abhängig davon, wie die Nummer gedruckt wird, wird 'description' oder' debugDescription' verwendet, und diese beiden Methoden verwenden unterschiedliche Genauigkeit für die Umwandlung in eine Zeichenfolge. –
Linked Q ist klar, aber ich verstehe nicht, warum 7,37 nicht konvergiert wie 9,37? Ich meine 7,37 konvergiert von rechts (7,3700000,1), aber 9,37 konvergiert von links (9,36999,2). @ martin-r danke für deine Antwort aber immer noch nicht klar für mich. Ich habe keine andere Genauigkeit für die Umwandlung gewählt, wie Sie in Ihrem Kommentar erklären können – yilmazburk