У меня есть этот код:
package picalculator;
//import java.util.Scanner;
public class PiCalculator {
static int odd=1;
public static void main(String[] args) {
calculatePi();
}
public static void calculatePi() {
int counter=0;
double pi=4.0;
int num[];
num = new int[20];
num[0] = generateOdd();
num[1] = generateOdd();
num[2] = generateOdd();
num[3] = generateOdd();
num[4] = generateOdd();
num[5] = generateOdd();
num[6] = generateOdd();
num[7] = generateOdd();
num[8] = generateOdd();
num[9] = generateOdd();
num[10] = generateOdd();
num[11] = generateOdd();
num[12] = generateOdd();
num[13] = generateOdd();
num[14] = generateOdd();
num[15] = generateOdd();
num[16] = generateOdd();
num[17] = generateOdd();
num[18] = generateOdd();
num[19] = generateOdd();
for (int i=0;i<20;i++) {
if(counter == 0) {
pi -= 4/num[i];
counter++;
}else {
pi += 4/num[i];
counter--;
}
}
System.out.print(pi);
return;
}
public static int generateOdd() {
odd += 2;
return odd;
}
}
И по какой-то причине он возвращает "3.0", хотя должен возвращать что-то более похожее на "3.158 ..."
Кажется, чтоdouble округляется до целого числа с ".0" после него.У кого-нибудь есть идеи как это исправить?Заранее спасибо!