 So we all of a sudden run into a really interesting problem because we're able to do sort of the math. Let's actually kind of take a look at it for just one second. So if I'm able to pull up Python. Pull you up. There we go. If I'm able to pull up Python. And I do something like 0.1. All right, well, when I hit enter, I get 0.1. When I do 0.3, 0.3. However, all right, 0.1 plus 0.2 equals 0.3. I get it false. I get it false. Well, why? If I did add 0.1 plus 0.2. There you go. What? I don't, I don't. Okay, what's going on? So all of a sudden we're running into a bit of an issue. And this issue arises from something very unfortunate about the computer. So let's kind of think about things from our perspective for a second. We have a number system that has 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. We have these symbols that we can work and count from. You know, I have nine things. What happens when I run out of these symbols? Well, what happens is I actually, you know, I go 8, 9. I reset this to 0 and I increment by 1 on the left side. Well, we call this all of a sudden something known as base 10. And this is where things get interesting because, you know, if we look at fractions in base 10, something like 1 half, 1 over 2, that gets easy. That's going to turn into 0.5. It's a very easy, clean number to look at. If I did something like 1 fifth, I get the same thing. It's going to easily translate out into 0.2. I do 1 tenth. I get the exact same thing, something very easy. But all of a sudden, what happens if I go and do something like 1 third? Oh, well, you know, if you've ever done this, you know all of a sudden this is 333 repeating forever. And we don't do that. We don't write all of these 3s. Instead, what we typically do is we just come in here and we say, oh, well, because that's going to repeat forever, I'm going to put a line there. Same kind of thing is actually occurring when we think about what's going on inside of my Python all of a sudden. So what's happening is let's think about it the exact same way. There's only two numbers that binary can work off of, 0 and 1. There's only two numbers I can work off of. So the same approach comes into play. I'm able to do something like 1 divided by 2. This being known as a base 2 system. Since 2 is divisible by 2, this actually works out perfectly fine. I would get something like a 0.5. Well, in our case, since we're not dealing with binary, you know, it works. It's clean. I can do 1 over 1. Same kind of thing. Very easy to look at. It's divisible by 2. But the second I get into something like a third, and this is kind of where we get into what we're looking at, this becomes very interesting, especially from Python's perspective. So this is where this is coming in. I'm trying to do a math equation and it clearly is not going to handle that. And the problem is all of a sudden, plus 0.1, well 4, that's an easy one. But I take this one step further, 5.0. I take it one step further, 6.0. I take it one step up, one step further, 7.0. So all of a sudden, this is just like hanging in there. And if I'm not careful about it, I run into a problem. So how can I solve this? So we've got a magical thing. You may have seen this symbol in one of your calculus classes. And this is known as epsilon. So what's the purpose of this symbol? Why do we call it epsilon? What's so great about it? Well, if you kind of go into math and you research a little bit more, you have all Wikipedia, in calculus, epsilon refers to a very minute number, really tiny number. Let's arbitrarily just say epsilon is going to equal 0.0001. Now I don't have this symbol on, obviously, my keyboard. But I do have the ability to come into something like Python. And I'm able to come in and give it a value or give it a variable named epsilon and set it equal to exactly what I was just saying. 0,0001. Now, here's where things get interesting. Okay, you see all of a sudden that I've got this happening. And what I want it to be is 0.3. I want 0.3 to be where I'm going. So all of a sudden epsilon is going to be used to do what we call approximation. Now, approximation indicates that what we're saying is basically it's going to be close enough. So how can I do that? Well, again, I've already got my epsilon. That's my threshold. That's how precise am I going to have to be close enough? So what can I do? Well, if I take this number and I subtract it by this math equation, what I should get is a very small number. That's a very small number. Now, what I want to do is I actually want to still clean this up because what happens if I had done it the exact opposite way? I took this math equation and subtracted it by 0.3. I'm getting a positive and a negative. I don't like that. So what can I do? Instead, I can start to introduce some of the functions that are inherent inside of Python. ABS, standing for absolute value, comes in. You even see that. So all of a sudden, I can write this math equation in here. I can close that out and I'm going to get that positive 5.5 to the negative 10th power. So all of a sudden, we can keep going. Now, all of a sudden, to the negative 17th power, that is, all of a sudden, this is a very small number. How small? Well, is it smaller than my epsilon? And if I do this math equation that I'm looking at right now, yes, it is. So why is this pretty interesting? Well, now I can kind of round things out a little bit. I could take this if this math equation exists. Then all I'll do is I'll just come in and say, you know what? Let's cut off the rounding. Let's just go ahead and enter. And it's not always just with 0.3. Say, for example, I started with 1.0 and I multiplied it like this. I get the same place in all different spots. The same kind of thing can come into play. If I had, say, that boom, I could come in here and change this formula up. Change this so that it's a 7. It's a 7. We should probably change this math equation as well. x, x minus, since x is that. And now x equals 0.7.