System.out.println(b3.scale()); // 101
System.out.println(b3.signum()); // -1
// RoundingMode.DOWN always goes towards 0
// b3.precision() - b3.scale() will be the number of digits in the integer part of the BigDecimal
MathContext mc = new MathContext(b3.precision() - b3.scale(), RoundingMode.DOWN);
BigDecimal b3ROUNDED = b3.round(mc);
BigDecimal b3FRACTIONALPART = b3.subtract(b3ROUNDED);
System.out.println(b3ROUNDED); // -22222222222222222222222222222222222222222222222222222222222222222222222
System.out.println(b3FRACTIONALPART); // -0.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333