Per capire basta provare questo codice:

codice:
numero = "35.4\r\n";
trace(Number(numero));
trace(parseInt(numero));
trace(parseFloat(numero));
In pratica, a causa del rimando a capo, il tuo numero veniva interpretato come una stringa con quel "\r\n" alla fine. Il Number converte il contenuto in un numero, ma quella stringa non è un numero valido, per cui restituisce "NaN".

parseInt converte il contenuto in un numero *intero* (int -> intero), ma non considera i caratteri non numerici alla fine della stringa (per questo non considera "\r\n", e arrotonda a 35)

parseFloat converte il contenuto in un numero *decimale* (float -> con virgola), e non considera i caratteri non numerici alla fine della stringa (per questo non considera "\r\n", e lascia 35.4)