He tropezado con un problema con CInt y convertir un doble en un número entero.CInt no redondea el valor doble de forma consistente, ¿cómo puedo eliminar la parte fraccionaria?
La cuestión es la siguiente:
CInt(10.5) 'Result is 10
CInt(10.51) 'Result it 11, but I expected 10...
me acostumbré a C la conversión # estilo donde (int) 10.51
es 10.
Como se señaló en la pregunta sobre Integer.Parse vs CInt, el resultado es sólo redondeado de alguna manera .
Sin embargo, todo lo que necesito es obtener solo una parte entera y desechar la fracción. ¿Cómo puedo lograr ese tipo de conversión en VB.NET? Después de algunas investigaciones, veo que puedo usar la función Fix()
para hacer el truco, pero ¿es la mejor opción?
Peor: cint (10,5) = 10 pero cint (11,5) = 12. Si el número entero parte está incluso redondeo de 0,50000000 es hacia abajo, por extraño que se ha acabado! – Martin