2017-05-14 4 views
1

ich ziemlich ein Neuling auf scala bin und in meinem kleinen Schritten, verwende ich Centso 7.2 und Scala 2.12 mit sbt Konsole: hier ist meine Frage ist:Über scala Doppel-Datentyp Präzision

scala> val Y=5.12345938988398773983748934789473289472384723984723849 
Y: Double = 5.123459389883988 

Dies ist mit 15 Präzision und geben als Wert

und

scala> val u=4.91839028309283892389012 
u: Double = 4.9183902830928385 

excpected Dieses soll 4,9183902830928 sein ---> vielleicht bin ich etwas fehlt, wenn nicht, dann verliert es den Genauigkeitswert.

Können Sie mir bitte helfen zu verstehen, wie Scala dies behandelt, was diese Inkonsistenz in der Präzision verursacht.

Antwort

2

Wie Sie wahrscheinlich wissen, speichern Computer Zahlen nicht im Dezimalformat sondern im Binärformat. Und wenn es um Gleitkommazahlen geht, benutzen sie IEEE 754 standard.

Here Sie können eine große Erklärung und Beispiele finden, wie Computer Fließkommazahlen in und von IEEE 754-Format konvertiert.

+0

vielen Dank für die Details. –