Three minutes to talk about popular science
Hey friends!Have you ever been in a situation where you wrote a line in python and it turned out to surprise you?Today I want to share with you an interesting little story about 01+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.The sum of 1 is not equal to 09!Do you think there's something wrong with python?Don't worry, listen to me slowly.
In Python, we often use floating-point numbers (i.e., numbers with decimal points) to represent real numbers. However, due to the binary form used in the internal representation of floating-point numbers in computers, some decimal places cannot be accurately represented in binary decimals, which leads to the so-called floating-point error.
For example, let's just count 9 zeros1 add:
python
It seems, 9 0sThe addition of 1 should be 09, but the actual result is that there are some "strange" decimal places, and the result is not 09。Binary numbers and decimal numbers are represented differently, resulting in errors.
So, how to solve this problem?One way to do this is to import Python's decimal module, which is a module that can perform high-precision decimal operations. We can create a decimaldecimal object to represent 01, and then use the loop to add nine zeros1 sum to get an accurate result. This method is a bit more cumbersome, but it ensures that the results we get are accurate.
python
import decimal
Create a decimal object to represent 01
num = decimal.decimal('0.1')
Use the loop to add 9 0s1 add:
total = decimal.decimal(0)
for i in range(9):
total += num
Print out the results
print(total)
After running this paragraph, we get an exact result of 09`。This allows us to avoid calculation errors due to floating-point errors.
In addition, we can also understand the root of this problem by taking a deeper look at the relationship between binary and decimal. In this way, we can pay more attention to these differences in future calculations and avoid similar problems.
In conclusion, this little story teaches us that not all questions in the computer world can get the answers we expect. We need to understand the internal rules of the computer in order to make better use of them to solve problems. At the same time, this short story also reminds us to pay more attention to similar issues in our daily lives, so as not to cause unnecessary misunderstandings.
Well, that's what I'm going to share today. I hope you can get some inspiration and gain from it. Let's learn Xi, grow, and progress together!