number convert classic asp asp-classic vbscript

asp classic - convert - ASP/VBScript-Int() vs CInt()



vbscript convert string to number (4)

¿Cuál es la diferencia en ASP / VBScript entre Int() y CInt() ?


La función Int devuelve la parte entera de un número especificado.

La función CInt convierte una expresión para escribir Integer.

Y la mejor respuesta proviene de MSDN

CInt difiere de las funciones Fix e Int, que truncan, en lugar de redondear, la parte fraccional de un número. Cuando la parte fraccionaria es exactamente 0.5, la función CInt siempre la redondea al número par más cercano. Por ejemplo, 0.5 rondas a 0 y 1.5 rondas a 2.


Y, la diferencia más importante (IME, al menos) ... es que CInt se desborda a 32.767 .


Aquí hay otra diferencia:

Guión:

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

resultado:

4091 4090 (????) 4091

¿Alguna idea?


La respuesta habitual para este problema es forzar manualmente un redondeo. Este problema es tan antiguo como FORTRAN.

En lugar de

a = int(40.91 * 100)

Utilizar

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

Truco muy viejo, todavía útil en hojas de cálculo de Excel de vez en cuando.