php's -
оператор может неявно приводить для вас строки к плавающим числам, но это приведение не совместимо с запятыми в тысячу шагов, поэтому избавьтесь от запятых, сделайте ваши вычисления и добавьте запятые после вычисленияНапример,
$balance = "-16,438.56";
$amount = "1000.00";
return number_format ( (( float ) (str_replace ( ",", "", $balance ))) - (( float ) (str_replace ( ",", "", $amount ))), 2, ".", "," );