Description
Sometimes an Integer in C# isn't the right kind of number. Perhaps you need more room, sometimes less. We'll look at the precision of Integers and what happens when they aren't the right thing for you.
Watch the entire series here
Download Visual Studio 2019 here
Download .NET Core 3.0 here
Learn more about C#:
Follow us: Twitter, Facebook, Blogs, The C# community on Discord
Useful Links: .NET, Learn .NET, .NET Community
Download
The Discussion

4min 19sec "Holy crap!"

I also enjoyed the exclamation of "holy crap!".

Basically "double" deals with a limited set of rational numbers. Since rational numbers includes integers, no wonder it is very big in size. Rational number is any number that can be written by dividing an integer by another.
The overflow effect is pretty intersting, I played with it a bit, and found pretty weird answers like these:
int.MaxValue + int.MaxValue = 2
int.MaxValue + int.MinValue = 1
double.MaxValue + double.MaxValue = infinite
double.MaxValue + double.MinValue = zero

I'm confused. With input of 15 / 72, I get an answer of 0, but if I input 1.5 / 7.2, it gives 0.208333333333333. These two equations are equivalent, and I thought that double was not supposed to truncate the answer. It seems to do the same thing every time both numbers are integers that were not assigned variables. So in the second example, (a + b) / c gives 5.25, where a=19, b=23, and c=8, but if I type it in as numbers, (19 + 23) / 8, it gives 8.
Under which circumstances does double revert to int? 
Typo in previous comment, should read "(19 + 23) / 8, it gives 5."

In a previous video in this series, Scott mentioned "String literals", strings which are not stored as variables but are strings.
@Confused Person, likewise
15/72 will be interpreted as int literal, which gives a 0.
1.5 / 7.2 will be interpreted as a double literal.
And likewise, (19 + 23)/8 is interpreted as int.
To test this out, try assigning the operations to a variable declared with var, and then call var.gettype() like so:
var d = (19 + 23)/8 ;
Console.WriteLine($"Type of d is {d.gettype()}");
A better reference:
https://docs.microsoft.com/enus/dotnet/csharp/languagereference/builtintypes/floatingpointnumerictypes