最小化数值误差

从大到小添加数字没有从小到大添加数字精确
在大数之前先增加小数是减小误差的一种方法

import java.util.*;
class Main {
  public static void main(String[] args){
    //Initialize sum
    float sum = 0;
    //Add 0.01,0.02,...,0.9,1 to sum
    for(float i = 0.01f; i <= 1.0f ;i = i + 0.01f){
      sum += i;
    }
    //Display result
      System.out.println("The sum is " + sum);
    
    //Add 0.01,0.02,...,0.9,1 to sum
    double sum1 = 0;
    for(double i = 0.01; i <= 1.0; i = i + 0.01){
      sum1 += i;  
    }
    //Display result
    System.out.println("The sum1 is " + sum1);
    
    //Add 0.01,0.02,...,0.9,1 to sum
    double currentValue1 = 0.01;
    double sum2 = 0;
    for(int i = 0; i < 100; i++){
      sum2 += currentValue1;
      currentValue1 += 0.01;
   }
    //Display result
    System.out.println("The sum2 is " + sum2);

    //Add 0.01,0.02,...,0.9,1 to sum
    double currentValue2 = 1.0;
    double sum3 = 0;
    for(int i = 0; i < 100; i++){
      sum3 += currentValue2;
      currentValue2 -= 0.01;
   }
    //Display result
    System.out.println("The sum3 is " + sum3);
  }
}
posted @ 2022-05-19 20:16  Scenery_Shelley  阅读(30)  评论(0)    收藏  举报