La funzione htmlspecialchars_decode accetta una stringa, quindi se gli passi un valore intero, questo verrà trattato come una stringa, per questo non dovrebbe dare errori.
Controlla bene, non è che hai un problema di codifica?