相关疑难解决方法(0)

我什么时候应该在java中使用"strictfp"关键字?

我已经查明了它的作用,但是有没有人真的有一个例子,你何时会strictfp在Java中使用关键字?有没有人真的找到了这个用途?

将它放在我的所有浮点运算上是否会产生任何副作用?

java floating-point strictfp

250
推荐指数
6
解决办法
8万
查看次数

Java中是否有常用的有理数字库?

我正在寻找一个代表分数(有理数)的Java库.例如,如果我想存储分数,1/3那么它将不会被保存,0.33333因为它将失去其准确性.

以下是我希望在这样的库中找到的一些功能:

  • getNumerator()
  • getDenominator()
  • add(Rational r1, Rational r2),subtract(Rational r1, Rational r2),multiply(Rational r1, Rational r2),divide(Rational r1, Rational r2)
  • isProper()
  • getCommonDenominator(Collection<Rational> rationals)
  • getSimplified()

我可以自己实现这样一个库,虽然我想知道类似的东西是否已经存在.

编辑:如果库实现(除了上面)一些数论算法,如getEgyptianFractionsSum()等等,也会很好.

java math

31
推荐指数
2
解决办法
1万
查看次数

保持最大精度水平

我正在研究业务逻辑,我需要对BigDecimal变量进行除法和乘法以产生业务结果,但是我面临着保持准确性的问题。

实际的业务我不能放在这里,所以我创建了一个示例程序并包含在此处。我只需要使用BigDecimal,所以我对此非常严格,但是我愿意使用任何比例尺,模式或任何有助于我获得最大精度的东西。

总是欢迎提出建议。

样例代码

public class Test {
    public static void main(String[] args) {
        BigDecimal hoursInADay = new BigDecimal("24");
        BigDecimal fraction = BigDecimal.ONE.divide(hoursInADay, 3,
                RoundingMode.HALF_UP);
        BigDecimal count = BigDecimal.ZERO;

        for (int i = 1; i <= 24; i++) {
            count = count.add(fraction);
        }

        if (BigDecimal.ONE.equals(count)) {
            // accuracy level 100%
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java

5
推荐指数
1
解决办法
143
查看次数

标签 统计

java ×3

floating-point ×1

math ×1

strictfp ×1