Это в основном потому, что у вас недостаточно значащих цифр. Если вы умножаете что-то, что имеет только 1 значащую цифру на 100, то вы получаете что-то только с 1 значащей цифрой. Если он показывает «10», то это в основном говорит о том, что он имеет 2 значащие цифры. Чтобы показать, что он имеет только 1 значащую цифру, нужно показать "1 x 10 ^ 1".
Следующие два знака после запятой имеют одинаковое значение (10), но разные «масштабы» (где они начинают считать значащие цифры; в верхней части есть 2 сиг-фига, в нижней - 1):
System.out.println(new BigDecimal(BigInteger.TEN, 0)); // prints 10
System.out.println(new BigDecimal(BigInteger.ONE, -1)); // prints 1E+1