You have confused scale (total number of decimal places) with precision (number of significant digits). For numbers between -1 and 1, the precision does not count any zeroes between the decimal point and the non-zero decimal places, but the scale does.
The second argument to BigDecimal.divide
is a scale. So you get 50 decimal places for your first output.
The argument to the MathContext
constructor is a precision. So for your second output, you get 50 significant decimal places, plus one additional zero between the decimal point and the 2.
First decimal place (start counting scale from here)
↓
0.02127659574468085106382978723
↑
First significant digit (start counting precision from here)