我在 scala 解释器中得到了这个:
scala> val a:Float = 71F; val b:Int = 71; if (a==b) println ("?")
?
a: Float = 71.0
b: Int = 71
我想知道这种比较的确切语义是什么。尽管我对 Scala 有肤浅的了解,但我猜浮点数算术(在这种情况下,我确保不使用与 java 的 BigDecimal 等效的东西,或者至少我认为如此)适用于这个示例。所以“a”不像“b”那样持有数字71,而是接近它的东西。
我认为使任何整数到浮点比较产生 false 都会简化事情,但我确信我一定遗漏了一些东西。
在旁注中,我想知道这是否会导致代码中的任何错误。