Array does not store correct values

Could somebody please explain why

        real[int, int] IDeviatoric = [[2/3, -1/3, -1/3, 0, 0, 0],
                                    [-1/3, 2/3, -1/3, 0, 0, 0],
                                    [-1/3, -1/3, 2/3, 0, 0, 0],
                                    [0, 0, 0, 1, 0, 0],
                                    [0, 0, 0, 0, 1, 0],
                                    [0, 0, 0, 0, 0, 1]];
        cout << IDeviatoric << endl;

prints out

           0   0   0   0   0   0
           0   0   0   0   0   0
           0   0   0   0   0   0
           0   0   0   1   0   0
           0   0   0   0   1   0
           0   0   0   0   0   1

What happened with all the elements divided by 3? Jesus chirst …

Probably 2/3 is understood as an integer: 2/3 = int(2/3)
Did you try to replace 2/3 by 2./3. ?

Oh ok, replacing the 2/3 by 2./3. works better, yes. Thanks! I was just about to hit something.