Страницы

Поиск по вопросам

среда, 26 февраля 2020 г.

Как выводить результат с заданной пользователем точностью?

#java #математика #условия #точность


Условие: Написать программу, вычисляющую число   с точностью, задаваемой пользователем.
Известно, что сумма ряда 1-1/3+1/5-1/7+1/9-…приближается к значению  pi/4 при достаточно
большом количестве членов ряда.

public class Class {
    public static void main(String[] args) {
        double a = 3;
        double sum=1;
        for (int i=0;i<1000;i++){

            if (i%2==0){
                sum=sum-1/a;
            }
            if (i%2!=0){
                sum=sum+1/a;
            }
            a+=2;
        }
        double pi=sum*4;
        System.out.println(pi);

    }
}


Само pi я рассчитал, но как задать количество знаков после запятой? 
    


Ответы

Ответ 1



Можно вот так: String.format("%.2f", value); Взято из: https://stackoverflow.com/a/1276096/2871225

Ответ 2



От вас требуется не вывести число с определенным количеством знаков, а посчитать с определенной точностью. Ваш алгоритм делает фиксированное количество шагов for (int i=0;i<1000;i++) А должен останавливаться при достижении нужной точности, например так while (Math.abs(1 / a) > e) где e - введенное пользователем число, например 0.0001

Комментариев нет:

Отправить комментарий