Я хочу получить ровно 100 цифр (включая цифру слева от десятичной точки) в разложении каждого иррационального квадратного корня из чисел меньше 100.
int sum = 0;
BigDecimal root;
MathContext wtf = new MathContext(101, RoundingMode.HALF_UP);
BigDecimal number = BigDecimal.ONE;
for (int i = 1; i <= 100; i++) {
if (Math.sqrt(i) != (int) Math.sqrt(i)) {
System.out.println(i);
root = number.sqrt(wtf);
String digits = root.toString();
StringBuffer copy = new StringBuffer(digits).deleteCharAt(1);
System.out.println(copy);
copy.deleteCharAt(copy.length() - 1);
for (int j = 0; j < copy.length(); j++) {
sum = sum + Character.getNumericValue(copy.charAt(j));
}
System.out.println("sum: " + sum + "; length: " + copy.length());
}
number = number.add(BigDecimal.ONE);
}
Что я не могу понять, так этопочему для большинства номеров я получаю 100 цифр, как я хочу, но для некоторых чисел, таких как 5 и 27, я получаю всего 99 цифр.