An object-oriented and type-safe programming language that has its roots in the C family of languages and includes support for component-oriented programming.
this is usually taught in a beginners computer science class. On computers, floating point is done in base 2. just like 1/3 is a repeating decimal (base ten), some decimal numbers can not be expressed in base 2.
simple example:
double num = .0;
for (var i =0; i < 100; ++i)
{
num = num + .01;
}
Console.WriteLine(num); //1.0000000000000007
for this reason, when dealing with money (which you want to add up), you use integer arithmetic with an implied decimal point. this is what the decimal datatype is for.
if the language you are using does not support a decimal datatype, then for money you typically do the math in pennies (or mills if more precision needed) then divide by 100.