public static void main(String[] args) {
double sum=860.10+1808.09;
double sum1=1808.09+860.10;
System.out.println(sum);// output is 2668.19
System.out.println(sum1);// output is 2668.19
List<Double> lst=new ArrayList<Double>();
lst.add(860.10);
lst.add(1808.09);
Double res=lst.stream().mapToDouble(d->d).sum();
System.out.println(res);// output is 2668.1900000000005
lst.clear();
//adding in reverse order
lst.add(1808.09);
lst.add(860.10);
res=lst.stream().mapToDouble(d->d).sum();
System.out.println(res);// output is 2668.19
}
Why mapToDouble sum method is producing wrong output sometimes? Why the order is important here, both the inputs are of type double.