скорее всего данные в базе хранятся с разделением тысяч.
например: 1 000
в этом случае при переводе в числовой формат откидывается все начиная с пробела.
для решения этой проблемы нужно сначала удалить пробелы.
Код:
$cost = str_replace(" ", "", $price);
$cost = number_format($cost, 2, '.', '');