¿Cuál es la diferencia en ASP/VBScript entre Int()
y CInt()
?ASP/VBScript - Int() vs CInt()
Respuesta
La función Int devuelve la parte entera de un número especificado.
La función CInt convierte una expresión a tipo entero.
Y la mejor respuesta viene de MSDN
CInt difiere de la corrección y funciones Int, que truncan, en lugar de redonda, 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 rondas a 0 y 1.5 rondas a 2.
Y, la diferencia más importante (IME, al menos) ... es esa CInt overflows at 32,767.
Aquí es 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?
Redondeo de punto flotante. El valor real de "40.91" en el código es extremadamente cercano, pero apenas inferior al valor decimal teórico. CInt redondea al más cercano, Int trunca. –
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)
Uso
b = 40.91 * 100
a = int(b + 0.5)
muy viejo truco, siendo útil en hojas de cálculo Excel de vez en cuando.
- 1. int vs const int &
- 2. classic asp cint
- 3. int ** vs int [FILAS] [COLS]
- 4. Explicación de int? vs int
- 5. int vs NSNumber vs NSInteger
- 6. C++: long long int vs. long int vs. int64_t
- 7. Mysql middle int vs. int performance
- 8. Uninitialized int vs Integer
- 9. Java: Enum vs. Int
- 10. MySQL: bigint Vs int
- 11. System.Convert.ToInt vs (int)
- 12. usando uint vs int
- 13. NSNumber vs Int
- 14. GUID vs INT IDENTIDAD
- 15. Usando int vs Integer
- 16. Entero objetos int vs
- 17. Int32 Int64 vs vs Int en C#
- 18. PHP Security - (int) vs FILTER_VALIDATE_INT
- 19. Decimal VS Int en MySQL?
- 20. Int ID vs. Identificación varchar
- 21. largo largo vs int multiplicación
- 22. INT vs VARCHAR en busca
- 23. double double vs long int
- 24. int vs size_t en 64bit
- 25. Casting (int?) Null vs. new int?() - ¿Qué es mejor?
- 26. Nullable <int> vs. int? - ¿Hay alguna diferencia?
- 27. IList <int> vs Lista <int>
- 28. static_cast <int> (foo) vs. (int) foo
- 29. C/C++ int [] vs int * (punteros vs. notación de matriz). ¿Cuál es la diferencia?
- 30. NSUEntero vs NSInteger, int vs unsigned, y casos similares
Muchas gracias por el recordatorio de que int es un entero con signo 16 BIT. –