What is the best data type in C# for storing amounts

I am having trouble with amount calculation in C#. I am doing an invoice program in C#. When I store a value and retrieve it back, the decimal values get rounded or an additional cent come in! I can not figure it out. I think the problem is with the data types that I am using.
