Pergunta

Qual é a diferença em ASP/VBScript entre Int() e CInt()?

Foi útil?

Solução

A função Int retorna a parte inteira de um número especificado.

A função CInt converte uma expressão para o tipo Integer.

E a melhor resposta vem de MSDN

CInt difere das funções Fix e Int, que truncam, em vez de arredondar, a parte fracionária de um número.Quando a parte fracionária é exatamente 0,5, a função CInt sempre arredonda para o número par mais próximo.Por exemplo, 0,5 rodadas para 0 e 1,5 rodadas para 2.

Outras dicas

E a diferença mais importante (IME, pelo menos)....é que CInt transborda em 32.767.

Aqui está outra diferença:

Roteiro:

wscript.echo 40.91 * 100
wscript.echo Int(40.91 * 100)
wscript.echo CInt(40.91 * 100)

resultado:

4091
4090   (????)
4091

Alguma ideia?

A resposta usual para esse problema é forçar manualmente um rearredondamento.Este problema é tão antigo quanto o FORTRAN.

Em vez de

a = int(40.91 * 100)

Usar

b = 40.91 * 100
a = int(b + 0.5)

Truque muito antigo, ainda útil em planilhas de Excel de vez em quando.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top