关于scala双数据类型精度

关于scala双数据类型精度,scala,validation,type-conversion,Scala,Validation,Type Conversion,我是scala的新手,在我的小步骤中,我将Centso 7.2和scala 2.12与sbt控制台一起使用:我的问题是: scala> val Y=5.12345938988398773983748934789473289472384723984723849 Y: Double = 5.123459389883988 这是15精度,给出了预期值 及 这应该是4.9183902830928390-->可能是我遗漏了什么,如果没有,那么它就失去了精度值 您能帮助我理解Scala是如何处理这一

我是scala的新手,在我的小步骤中,我将Centso 7.2和scala 2.12与sbt控制台一起使用:我的问题是:

scala> val Y=5.12345938988398773983748934789473289472384723984723849
Y: Double = 5.123459389883988
这是15精度,给出了预期值

这应该是4.9183902830928390-->可能是我遗漏了什么,如果没有,那么它就失去了精度值


您能帮助我理解Scala是如何处理这一导致精度不一致的问题的。

您可能知道,计算机存储的数字不是十进制的,而是二进制的。当涉及到浮点数时,他们使用

您可以找到一个很好的解释和例子,说明计算机如何将浮点数转换为IEEE 754格式

scala> val u=4.91839028309283892389012
u: Double = 4.9183902830928385