Pregunta

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

¿Fue útil?

Solución

La función Int devuelve la parte entera de un número específico.

La función CInt convierte una expresión al tipo Integer.

Y la mejor respuesta viene de MSDN

CInt se diferencia de las funciones Fix e Int, que truncan, en lugar de redondear, la parte fraccionaria 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 se redondea a 0 y 1,5 se redondea a 2.

Otros consejos

Y la diferencia más importante (IME, al menos)... es que CInt se desborda en 32,767.

Aquí hay otra diferencia:

Guion:

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 a este problema es forzar manualmente un redondeo.Este problema es tan antiguo como FORTRAN.

En lugar de

a = int(40.91 * 100)

Usar

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

Truco muy antiguo, que sigue siendo útil de vez en cuando en hojas de cálculo de Excel.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top