RX0187

Domínio: Execução

Mensagem de erro

um texto que não é um número: %s (%s)

Na mensagem, %s marca um valor que o motor preenche quando levanta o erro.

A história

Você pediu para converter um texto em número e o motor disse que aquele texto não é um número. Vamos entender. O to.number é a única porta que lê um texto como número exato. Ele aceita dígitos, no máximo um ponto, um sinal opcional e um expoente opcional. Então um, e três, e-três, vira mil, exatamente. Mas se o texto for garbage, ou vazio, ou um, ponto, dois, ponto, três, não existe número nenhum para devolver. E o motor não inventa. Ele recusa pelo nome, mostrando o texto do jeito que você deu e explicando por quê. Antigamente a recusa era um código genérico, sem motivo, e você ficava no escuro. Agora não. Um exemplo pequeno: você escreve to.number de um, ponto, dois, ponto, três e leva a recusa, porque tem dois pontos. A correção é escrever só um ponto, um, ponto, dois. O mesmo código aparece no to.bool, que só aceita o número zero ou o número um. Nem o texto um passa. A mensagem mostra o valor e o tipo dele. Leia os dois espaços e corrija a entrada.

Texto do catálogo de erros do motor do Rush.