|
1 | 1 | /* |
2 | | - * Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. |
| 2 | + * Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved. |
3 | 3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 | 4 | * |
5 | 5 | * This code is free software; you can redistribute it and/or modify it |
@@ -348,7 +348,7 @@ private static int lowPrecisionPerfectSquares() { |
348 | 348 |
|
349 | 349 | for (int scale = 0; scale <= 4; scale++) { |
350 | 350 | BigDecimal scaledSquare = square.setScale(scale, RoundingMode.UNNECESSARY); |
351 | | - int expectedScale = scale/2; |
| 351 | + int expectedScale = Math.ceilDiv(scale, 2); |
352 | 352 | for (int precision = 0; precision <= 5; precision++) { |
353 | 353 | for (RoundingMode rm : RoundingMode.values()) { |
354 | 354 | MathContext mc = new MathContext(precision, rm); |
@@ -582,7 +582,8 @@ public static BigDecimal sqrt(BigDecimal bd, MathContext mc) { |
582 | 582 | // The code below favors relative simplicity over checking |
583 | 583 | // for special cases that could run faster. |
584 | 584 |
|
585 | | - int preferredScale = bd.scale()/2; |
| 585 | + int preferredScale = Math.ceilDiv(bd.scale(), 2); |
| 586 | + |
586 | 587 | BigDecimal zeroWithFinalPreferredScale = |
587 | 588 | BigDecimal.valueOf(0L, preferredScale); |
588 | 589 |
|
|
0 commit comments