我无法为Double生成Scala范围。
我已经阅读了StackOverflow,有很多片段显示了双倍范围,但是在我的Scala REPL 2.13.0中都没有作用
9.474 to 49.474 by 1.0
1d to 1000d by 1d
(1.0 to 2.0 by 0.01)
^
error: value to is not a member of Double
我无法习惯在Scala REPL中生成双倍范围的原因是什么
我在使用Scala 2.13.0的macOS上
答案 0 :(得分:5)
在Scala 2.12中,我收到了弃用警告:
scala> 9.474 to 49.474 by 1.0
<console>:12: warning: method to in trait FractionalProxy is deprecated (since 2.12.6): use BigDecimal range instead
9.474 to 49.474 by 1.0
因此,也许在2.13中不再受支持。根据警告,您可以执行以下操作:
scala> BigDecimal(9.474) to BigDecimal(49.474) by BigDecimal(1.0)
res6: scala.collection.immutable.NumericRange.Inclusive[scala.math.BigDecimal] = NumericRange 9.474 to 49.474
这也有效:
BigDecimal(9.474) to BigDecimal(49.474) by 1
如果您在两个版本上都使用.foreach(println)
,则会看到没有BigDecimal
的结果看起来不是很好:
9.474
10.474
..
31.474
32.474000000000004
33.474000000000004
...
整个标准库中已弃用的各种方法和类已完全删除。