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

InformationsquelleAutor Seibar | 2008-08-21

4 Comentarios

  1. 34

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

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

    Y la mejor respuesta viene de la MSDN

    CInt difiere de la Revisión y Int funciones, que truncar, en lugar de redonda, la parte fraccionaria de un número. Cuando la parte fraccionaria es exactamente 0,5, la función CInt siempre se redondea al número par más cercano. Por ejemplo, 0,5 se redondea a 0 y 1.5 se redondea a 2.

    • dios, me pregunto cuántas personas están conscientes de que son redondeo sólo el número par más cercano. Fue la reescritura de una función de vba en python, gracias por esto.
  2. 16

    Y, la diferencia más importante (IME, al menos)….es que CInt desbordamientos en los 32.767.

    • Muchas gracias por el recordatorio de que el int es un signo de 16 BITS entero!
    • Las versiones posteriores y entornos para VBScript tienen mayores puntos de desbordamiento. E. g. VBScript 15.8 y son buenos hasta +/- de 2.147.483.647
  3. 3

    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

    Los pensamientos?

    • De punto flotante de redondeo. El valor real de «40.91» en el código es muy cerca, pero un poco menos que el teórico valor decimal. CInt redondea al entero más cercano, Int trunca.
  4. 3

    La respuesta habitual a este problema es para forzar manualmente una re-redondeo de las cifras. Este problema es tan viejo como el FORTRAN.

    Lugar de

    a = int(40.91 * 100)

    Uso

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

    Muy viejo truco, siendo útil en hojas de cálculo de Excel a partir de tiempo al tiempo.

Dejar respuesta

Please enter your comment!
Please enter your name here