Deals Of The Week - hours only!Up to 80% off on all courses and bundles.-Close
Date and time


Excellent! See how convenient these numbers are? There is, however, one problem about REAL and DOUBLE numbers which you must take into account. These are rounding errors. Why?

Well, DOUBLE and REAL numbers store information in the binary system. Values such as 0.2 don't have a precise binary representation. Numbers like 1/3 can't be represented with a finite decimal number at all. This is why such numbers need to be rounded. And when you add a rounded number to a rounded number and the result is rounded as well - you can predict what happens.


Have you noticed that we have a rather special user in our table with user_id 6? It's Thumbelina. We will use the information she provided to check rounding errors.

Select her height, weight and calculate the third column expected_zero in the following way: height - weight - height + weight. It should equal zero, right?

Stuck? Here's a hint!


SELECT height, weight, 
height - weight - height + weight AS expected_zero 
FROM body 
WHERE user_id = 6;