https://stackoverflow.com/questions/19058859/what-does-mean-in-java
Integer.MIN_VALUE: -2147483648 == -2^31
Integer.MAX_VALUE: 2147483647 == 2^31-1
Float.MIN_VALUE: 1.4E-45 == 2^-149
Float.MAX_VALUE: 3.4028235E38 === (2-2^-23)·2^127
Double.MIN_VALUE: 4.9E-324 == 2^-1074