В проекте базы данных есть правило, согласно которому «атомарные данные» не следует разбивать. По этому правилу цена или стоимость являются таким примером элементарных данных, и поэтому их никогда не следует разбивать на несколько столбцов, точно так же, как вам не следует разбивать телефонный номер на несколько столбцов (если только у вас нет для этого веской причины - очень редко)
Используйте тип данных DECIMAL. Должно работать что-то вроде DECIMAL (8,3), и оно поддерживается всеми продуктами баз данных, совместимыми с ANSI SQL!
Вы можете обратиться к книге "Мышление в наборах" Джо Селко для обсуждения этой темы. См. раздел 1.6.2, стр. 21-22 .
РЕДАКТИРОВАТЬ -
Из вашего вопроса видно, что вы также обеспокоены тем, как принять ввод пользователя в форме, похожей на цену (xxxx.xx) - отсюда два поля ввода, для целых долларов и пенни.
Я рекомендую использовать одно поле ввода, а затем выполнить проверку ввода с использованием регулярных выражений для соответствия вашему формату (например, что-то вроде [0-9] + (. [0-9] {1,3} )? , вероятно, будет работать, но может быть улучшено). Затем вы можете проанализировать проверенную строку в десятичном типе на вашем языке или просто передать ее в виде строки в базу данных - SQL будет знать, как преобразовать ее в тип DECIMAL.