Qué tipo de dato es el mejor para representar monedas en .Net?

La respuesta es Decimal

El tipo de dato Decimal representa números decimales con un rango desde el número positivo 79,228,162,514,264,337,593,543,950,335 al negativo 79,228,162,514,264,337,593,543,950,335. El Decimal es apropiado para cálculos financieros que requieren gran precisión en números con dígitos enteros y decimales, con pocos errores de redondeo. El Decimal no elimina la necesidad de operaciones de de redondeo. En su lugar, minimiza los errores de redondeo al aplicar estas operaciones. Si se elige el tipo de datos Double entonces se está expuesto a errores de redondeo.

Post traducido desde What is the best data type to use for currency in .NET?