, iterator value minus one returns incorrect value

I came across a bug, I don't know if its just me but I've never seen it talked about before and have never seen anything refer to it. It really doesn't affect what i'm doing but this is very interesting and puzzling:

var array = [2.5, 2.2]; => pad - 1);

this returns the following array...

[1.5, 1.2000000000000002]

... Last time I checked, in real life 2.2 - 1 = 1.2

Is this real life? Are computers real? I really don't like the idea that the computer is actually not subtracting 1 from 2.2... what is it actually doing? Testing its scheme on how it can disrupt society and take over the world by fooling us?