Yo sospecho que puede ser la manera como esta entendiendo el número.
Tu dices que lo estas probando con 2500.00, por pura casualidad ponle 2500 así sin punto decimal a ver si te lo recibe bien. Si mi sospecha es cierta es que esta malinterprentando el valor y no lo esta tomando como un double sino muy posiblemente de otra forma. Prueba con gettype a ver que tipo de dato te bota.
Ya se que esto va a sonar basica primaria pero usa max para comparar que número es mayor entre cero y el número que te manda.
http://php.net/manual/es/function.max.php