Обратите внимание, что 2.374 находится между 2 и 3, а не между 2000 и 3000.
number_format($number, $decimals)
сначала добавит запятые для тысяч, например превращая 1000 в 1000 и затем округляя до $decimals
десятичных дробей.
Таким образом, ваше число 2.374 округляется до 2.37.
Вы, вероятно, хотите, чтобы 237405 был отформатирован до 2 374,05
Английский формат чисел - ставить запятые между тысячами и точкой перед значащими цифрами, тогда как немцы, например, делают это наоборот. Может быть, вы перепутали эти форматы?