Java.Help

  • Автор теми AkeL.php
  • Дата створення

Hamster

Well-Known Member
Да ему троечек мало, хочет узнать можно ли высчитать с большей точностью.
 

akl

geek
Код:
BigDecimal first = new BigDecimal(1.0);
BigDecimal second = new BigDecimal(3);
		
BigDecimal res = first.divide(second, 1000, RoundingMode.UP);
System.out.println(res);
 

dreamer

Member
Это неверный способ поиска циклов.
Верный выглядит как-то так:
Код:
        int divident = 1;
        int divisor = 7;
        List<Integer> mods = new ArrayList<Integer>();
        StringBuilder digits = new StringBuilder("0.");
        while (! mods.contains(divident) && divident != 0) {
            mods.add(divident);
            divident *= 10;
            while (divident < divisor) {
                digits.append("0");
                divident *= 10;
            }
            digits.append(divident / divisor);
            divident = divident % divisor;
        }
        if (divident != 0) {
            digits.insert(mods.indexOf(divident) + 2, '(');
            digits.append(')');
        }
        System.out.printf("1/%d = %s%n", divisor, digits);
 
Зверху