I am working on a project where we are calculating prices of items with 8 places of decimal points. But sometime calculation results are different.
I tried some samples but getting different calculation results:
    public static void main(String[] args) {
        double value1 =  0.999939f * 0.987792f;
        double value2 =  0.999939 * 0.987792;
        double value3 =  (double)0.999939f * 0.987792f;     
        System.out.println("value 1 : "+ value1);
        System.out.println("value 2: "+ value2);
        System.out.println("value 3 : "+ value3);
    }
Outputs are:
value 1 : 0.9877317547798157
value 2 : 0.9877317446880001
value 3 : 0.9877317839126931
These three are different results.
I am confused. Can anyone please clarify me what is happening here?
Thanks.
I went through some already answered, But I just want some ways where I can calculate with float and doubles only. otherwise I have to change many places. It will be painful.
 
     
     
    