本文介绍了如何让 Scala BigDecimal 显示大量数字?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

执行以下操作

  val num = BigDecimal(1.0)
  val den = BigDecimal(3.0)
  println((num/den)(MathContext.DECIMAL128))

我只知道

0.3333333333333333333333333333333333

小于我想要的 128

推荐答案

默认上下文是 MathContext.DECIMAL128,它用于所有计算,因此在您的示例中,num/den 的结果已经四舍五入到 128 位.您需要先为所有值设置上下文,然后再进行计算.

The default context is MathContext.DECIMAL128 which is used in all computations so in your example the result of num/den is already rounded to 128 places. You need to set your context on all values first and then do your computations.

val mc = new MathContext(512)
val num = BigDecimal(1.0,mc)
val den = BigDecimal(3.0,mc)
println(num/den)

不要尝试使用 MathContext.UNLIMITED,除非您知道您的算术不会产生无界十进制表示.甚至在您尝试打印之前它就会爆炸.

Don't try and use MathContext.UNLIMITED unless you know your arithmetic does not produce an unbounded decimal representation. It will blow up even before you try to print.

这篇关于如何让 Scala BigDecimal 显示大量数字?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 16:43