关于scala Double数据类型精度

时间:2017-05-14 06:55:04

标签: scala validation type-conversion

我是scala的新手,在我的宝贝步骤中,我使用Centso 7.2和Scala 2.12与sbt控制台:我的问题是:

scala> val Y=5.12345938988398773983748934789473289472384723984723849
Y: Double = 5.123459389883988

这是15精度并给出值为

scala> val u=4.91839028309283892389012
u: Double = 4.9183902830928385

这应该是4.9183902830928 390 --->可能是我错过了一些东西,如果没有,那么它会失去精确值。

能否请您帮助我了解Scala如何处理这种情况导致这种精确度不一致。

1 个答案:

答案 0 :(得分:2)

您可能知道,计算机存储的数字不是十进制格式,而是二进制格式。当谈到浮点数时,他们使用IEEE 754 standard

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