When PostgreSQL query <Value returns =Values
The fractional part is complex

0 * 0.5
1 * 0.25
1 * 0.125
0 * 0.0625
0 * 0.03125
1 * 0.015625
1 * 0.0078125
0 * 0.00390625
0 * 0.001953125
1 * 0.0009765625
1 * 0.00048828125
0 * 0.000244140625


I'm stopping but you can keep going...

0
1
1
0
0
1
1
0
0
1
1


Now we're going to take all the ones and add them up..

1 * 0.25
1 * 0.125
1 * 0.015625
1 * 0.0078125
1 * 0.0009765625
1 * 0.00048828125


The result is 0.39990234375. And, that's the problem here... You can't really write 0.4 in binary. That makes it a floating-point error. That means that the system has a rounding error, and it will try to accommodate for it.

   1/3 = 0.3333333333333333
   1/3 = 0.3333333333333333
+  1/3 = 0.3333333333333333
===========================
   3/3 = 1


Without which the above wouldn't be possible.