在我看过的地方,我无法找到小区功能:scala.math.BigDecimal上的ceil函数在哪里?
- https://duckduckgo.com/?q=scala+bigdecimal+ceil+function&t=ffab&ia=qa
- http://www.scala-lang.org/api/current/scala/math/BigDecimal.html
但我确实找到了ceil method on Double and Float。
我知道的MathContext,可向使用吊装舍入模式,但我似乎无法使其工作:
scala> BigDecimal("1.1").round(new MathContext(0, RoundingMode.UP))
res2: scala.math.BigDecimal = 1.1
scala> BigDecimal("1.8").round(new MathContext(0, RoundingMode.UP))
res3: scala.math.BigDecimal = 1.8
scala> BigDecimal("1.8").round(new MathContext(0, RoundingMode.CEILING))
res5: scala.math.BigDecimal = 1.8
scala> BigDecimal("1.8", new MathContext(0, RoundingMode.CEILING))
res6: scala.math.BigDecimal = 1.8
scala> res6.rounded
res8: scala.math.BigDecimal = 1.8
我希望所有的操作结果以上是== BigDecimal(2)
。
我使用BigDecimal,因为这些都是钱操作,因此我需要确切的值。
我发现[斯卡拉和Java的BigDecimal(http://stackoverflow.com/a/2698794/7355)通过使用'setScale'方法部分回答问题,并将刻度更改为0并使用CEILING舍入模式。这对我很有用,但我的问题仍然存在:为什么没有简单的'ceil'方法? –