allora.. secondo voi potrebbe bastare un semplice is_float ? magari aggiunto da un number_format? o ocorre altro?

$prezzo = $_POST["tpre"];

if(!is_float(number_format($prezzo,2))){
echo "non è una cifra decimale";
exit;
}