Tob*_*oby -1 java double integer rounding
我有这个代码:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
并且出于某种原因它返回"3.0",即使它应该返回更像"3.158 ......"的东西
似乎double正在向下舍入为整数后面带有".0".有没有人有关于如何解决这个问题的想法?提前致谢!