在 Java 中计算 1 到 50000 的数字在两个方向上的谐波和时,获得的值必须匹配,但令我大吃一惊的是它们不匹配!请告诉我为什么会这样。
public class Main {
    public static void main(String args[]){
        int maxD = 50000;
        double suml2r=0, sumr2l=0;
        for(int i=1; i<=maxD; i++){
            suml2r += (double)(1)/i;
            sumr2l += (double)(1)/(maxD-i+1);
        }
        System.out.println("left to right = " + suml2r);
        System.out.println("right to left = " + sumr2l);
    }
}
输出:
从左到右 = 11.397003949278504
从右到左 = 11.397003949278519