コード例 #1
0
  @Test
  public void 単純な四則演算検証() {

    // (10 + 2 - 4) * 4 / 8 = 4
    assertThat(Calculator.of(10).add(2).subtract(4).multiply(4).divideBy(8).intValue(), is(4));

    // (12.4 + 0.033 - 2.33) * 0.3 / 3.3 = 0.91 (RoundingMode.DOWN)
    assertThat(
        Calculator.of(12.4)
            .scale(2)
            .add(0.033)
            .subtract(2.33)
            .multiply(0.3)
            .divideBy(3.3)
            .decimal(),
        is(new BigDecimal("0.91")));
  }
コード例 #2
0
  @Test
  public void 累積端数処理の検証() {

    // 3.333 -> 3.334 -> 3.335 (= 3.34)
    assertThat(
        Calculator.of(3.333).scale(2, RoundingMode.HALF_UP).add(0.001).add(0.001).decimal(),
        is(new BigDecimal("3.34")));

    // 3.333 -> 3.330 -> 3.330 (= 3.33)
    assertThat(
        Calculator.of(3.333)
            .scale(2, RoundingMode.HALF_UP)
            .roundingAlways(true)
            .add(0.001)
            .add(0.001)
            .decimal(),
        is(new BigDecimal("3.33")));
  }