I liked what I saw here. Nice work guys.
I do want to add this **broken link removed** as reading.
https://en.wikipedia.org/wiki/IEEE_floating_point
Float and double are mostly artifacts as to how we got to where we are. Float is a type and at one time there was onlyFloat and Double. The IEEE standard uses binary 16, binary 32, binary 64 and binary 128.
Float would be single precision or binary32 and double would be double precision or 2*64.
The key as was pointed out is that not all decimal numbers can be equally converted to binary and we don't do: 101.11b in binary although it's certainly possible.
Significant figures, accuracy and precision are concepts that were drilled into my head in physics classes.
Take a simple kitchen measuring cup filled with a 1/4 cup of water.
The smallest graduation is the precision. So, it might be 4 oz that I'm measuring. The one I'm looking at, the finest graduation is 1 oz, so that is the precision I can read it, So, I have 4 oz +- 1 oz.
In any event 0.25 and 0.250 and 0.2500 have progressively more precision.
Accuracy is more of how well it measures up to the standard volume.
In many cases we care more about repeatability.