Floating Point Numbers, Redux#
Most of the calculations we’ve seen so far have worked with integers, and we’ve referred to them as both “numbers” and “integers.” We’ve also run into a different kind of number — floating point numbers. Floating point numbers — floats for short—behave a little differently than integers, and also different than the real numbers you know from math. For example, with division, the result appears to be a decimal number up to a certain precision:
>>> 1/3
0.3333333333333333
>>> 1/10
0.1
but if we try to do arithmetic, something odd happens:
>>> 1/10 + 2/10
0.30000000000000004
Python has given us a wrong mathematical answer! 😭 Why? Python (along with many other languages) uses floating-point numbers for arithmetic with non-whole numbers. Floats are often a good approximation for the reals, but:
not every real number can be represented as a float (and not just because our computer’s memory is finite)
the order of operations on floats can matter (
0.3
isn’t the same as0.1 + 0.2
)
Python Floating-Point Number versus Integers#
So, what is the difference between a floating-point number and an integer? Both integers and floating-point numbers represent a type of numerical data. An integer is a type of data that does not have a decimal point. A floating-point number is a data type that is used to represent non-whole numbers.
Is there a difference between 1 and 1.0?
Yes! 1
is an integer value, there is NO decimal point, where as 1.0
is a floating-point number, it HAS a decimal point.