RX0304

Domínio: Execução

Mensagem de erro

math.pow não consegue elevar ao expoente %s (%s)

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

A história

Você chamou o math.pow com um expoente que o motor não consegue calcular com exatidão. Vamos ver como a potência funciona. O math.pow responde sempre de forma exata. Para um expoente inteiro, ele multiplica a base por ela mesma, de forma exata, o número de vezes pedido. Para um expoente fracionário, digamos p sobre q, ele calcula a raiz de ordem q da potência de ordem p. O expoente é lido como essa fração. Mas existe um limite: o numerador pode ir até cem milhões, e o denominador até cem mil. Passou disso, a resposta não caberia no teto de texto do heap. E como o motor não aproxima, ele recusa pelo nome. Um exemplo: você escreve math.pow de dois, com um expoente enorme, com bilhões no numerador. A correção é usar um expoente dentro do limite, ou repensar a conta. A mensagem mostra o expoente como você deu e o limite. Compare os dois e ajuste.

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