python 0.1 + 0.2 = 0.30000000000000004   float32: 0.30000001192092896 (printed with %.9g: 0.300000012)
2**24 + 1 in float32 = 16777216   2**24 + 2 = 16777218
gap between neighbours at 1.0: 1.1920928955078125e-07  at 1e6: 0.0625  at 1e10: 1024.0
(1e8 + 1) - 1e8 in float32 = 0.0 (the 1 is lost, the gap at 1e8 is 8)
(a+b)+c = 1.0    a+(b+c) = 0.0    with a=1e8, b=-1e8, c=1
