Cita: Lo que ocurre es que con float el valor predeterminado era "nada" y con decimal es 0.00
Entonces si tu no indicabas precio en el INSET del producto, al mostrarlo no salia nada, pero si ahora no pones nada, este se muestra como 0,00 y parece que el producto es gratis.
Eso es un problema irrelevante para el modelo de datos. Es un problema de tipo procedimental y lo tienes que resolver en la aplicación, no en la base.
En otras palabras: Es una cuestión de diseño de aplicaciones... y por ende, decisión del que diseña la interfaz.