El manual de MySQL recomienda usar DECIMAL para los casos de valores con decimales que requieran
precisión, como es el caso de
valores monetarios.
En ese caso lo que tienes que determinar es la cantidad de dígitos enteros y decimales que usarás, ya que el DECIMAL requiere indicar la longitud del valor mayor (incluyendo el punto o coma decimal) y la cantidad de decimales a usar.
Así, DECIMAL(l, d), indicado como
significa que el mayor entero posible será 999999999, y el rango máximo será de -999999999.99 a 999999999.99.
Si cuentas los "9", verás que hay sólo 11, mientras que estoy indicando 12 como longitud de campo. Eso es porque un byte se usa para indicar la posición del punto decimal.
Respecto a la
representación de los valores en pantalla, eso depende del
lenguaje usado. En VB.Net, por ejemplo, eso se puede realizar por medio de objetos Globalization.CultureInfo, dos de cuyas propiedades permiten indicar qué separador decimal y de miles se usarán.
Fíjate en el método indicado en el manual de referencia en tu lenguaje de programación.