Principales respuestas
¿Como convertir float a int en c#?

Pregunta
-
Hola lo que pasa es que tengo el siguiente codigo, el cual dibuja una linea manipulable con un trackbar en mi form, pero al momento de compilar, me dice que no se puede convertir float a int, lo raro es que en visual basic net si funciona, pero al pasarlo a c# deja de trabajar, me gustaria que me dijeran que es lo que se encuentra mal en el siguiente codigo.
for (i = 0; i <= lineValues.Length - 1; i++) {
pt[i] = new Point(iPlots * i, iCentre - ((lineValues[i] * (iCentre - 1)) / 12));}
apartir de la instruccion new genera el error que cite antes, si me pueden ayudar.
Gracias
Respuestas
-
lo raro es que en visual basic net si funciona,
en vb.net funciona porque seguramente no tienes habilitada la opcion Option Strict
habilitala y vas a ver como deja de funcionar
me gustaria que me dijeran que es lo que se encuentra mal en el siguiente codigo.
pero alli no se puede ver de que tipo son las variables: pt, iCentre, iPlots
quizas debas hacer
pt[i] = new Point(Convert.ToInt32(iPlots * i), Convert.ToInt32(iCentre - ((lineValues[i] * (iCentre - 1)) / 12)));
o sea cada calculo lo conviertes al tipo int, pero ojo valida si es que el valor se llega a redondear
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Homero1225S domingo, 4 de agosto de 2013 21:26
Todas las respuestas
-
No puedes convertir implicitamente un float en un int, debes hacer un cast explícito.
static void Main(string[] args) { float f = 4.3f; int a = (int)f; }
Insertando el cast a (int) ya funcionará. Un saludo!
Vicente Cartas Espinel - MVP XNA/DirectX
- Propuesto como respuesta Sergio ParraModerator sábado, 27 de julio de 2013 0:35
-
-
lo raro es que en visual basic net si funciona,
en vb.net funciona porque seguramente no tienes habilitada la opcion Option Strict
habilitala y vas a ver como deja de funcionar
me gustaria que me dijeran que es lo que se encuentra mal en el siguiente codigo.
pero alli no se puede ver de que tipo son las variables: pt, iCentre, iPlots
quizas debas hacer
pt[i] = new Point(Convert.ToInt32(iPlots * i), Convert.ToInt32(iCentre - ((lineValues[i] * (iCentre - 1)) / 12)));
o sea cada calculo lo conviertes al tipo int, pero ojo valida si es que el valor se llega a redondear
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Homero1225S domingo, 4 de agosto de 2013 21:26
-
intente como dice Leandro, pero no sirvio de mucho, lo que vi, es que tenia una variable en float declarada, por eso no funcionaba la conversion, solo la converti a int, y funciono inmediatamente. de igual manera Gracias por sus respuestas
- Editado Homero1225S domingo, 4 de agosto de 2013 21:31