2017-05-14 6 views
0

Ich habe mit der Browser-Konsole herumgespielt und ich habe eine seltsame Sache (für mich) kennengelernt. Als ich 0.2 * 3 tippte, produzierte es 0.6000000000000001. Nicht nur mit 0,2 erzeugen auch andere Dezimalzahlen solche Zahlen.Warum produziert 0,2 * 3 0.6000000000000001?

1.1*3 -> 3.3000000000000003 
0.2*7 -> 1.4000000000000001 

Ich möchte wissen, warum es eine nach 17 demical Orte gibt. Kann mir das jemand erklären?

Antwort

0

Es hat damit zu tun, wie die Maschine Zahlen speichert und mathematisches Zeug intern verarbeitet. Eine der üblicheren Weisen, in denen Computer Zahlen speichern, wird "Gleitkomma" -Darstellung genannt. Dies basiert auf binären Kodierungszahlen als Folge von Einsen und Nullen.

Ähnlich wie das alltägliche base-10 (Dezimal-) System es unmöglich macht, 1/3 genau auszudrücken (zB 0.3333333333333 ...), hat das von Computern verwendete Fließkomma-System Schwierigkeiten, bestimmte Zahlen präzise auszudrücken . Dies wird oft als "Gleitkomma-Ungenauigkeit" bezeichnet.

Es gibt andere Möglichkeiten, um Zahlen auf einem Computer zu speichern, die kein Problem mit den von Ihnen geposteten Beispielen haben würden, aber es gibt einen Kompromiss zwischen der Speichermenge, die zum Speichern der Zahlen und der Effizienz benötigt wird welche mathematischen Berechnungen können verarbeitet werden.

Verwandte Themen