¿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. usando uint vs int
- 9. GUID vs INT IDENTIDAD
- 10. System.Convert.ToInt vs (int)
- 11. Uninitialized int vs Integer
- 12. Usando int vs Integer
- 13. NSNumber vs Int
- 14. MySQL: bigint Vs int
- 15. Entero objetos int vs
- 16. Java: Enum vs. Int
- 17. Int32 Int64 vs vs Int en C#
- 18. Decimal VS Int en MySQL?
- 19. PHP Security - (int) vs FILTER_VALIDATE_INT
- 20. INT vs VARCHAR en busca
- 21. int vs size_t en 64bit
- 22. Int ID vs. Identificación varchar
- 23. double double vs long int
- 24. largo largo vs int multiplicación
- 25. Casting (int?) Null vs. new int?() - ¿Qué es mejor?
- 26. IList <int> vs Lista <int>
- 27. Nullable <int> vs. int? - ¿Hay alguna diferencia?
- 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. –