Programación General > Delphi
floating ... overfloat
althenna:
se que el codigo esta de lo mas simple pero es en base de un algoritmo matematico por lo cual lo debo de dejar asi, mi problema es cierto error el la linea donde se calcula el m2 (cuyo resultado lo necesito para tomar una decision), declare las variables como tipo double y use el strtofloat para tomar los datos
--- Código: Text --- procedure TForm1.Button2Click(Sender: TObject);varXL,XU,XR,FXL,FXU,FXR,producto,error,Eros,m1,m2:double;n1,n2,n3,n4,n5,n6,n7:double;begin xl:=strtoint(int1.Text); xu:=strtoint(int2.text); eros:= strtoint(edit1.Text); Error:=100; {ahora sacamos n1=orden0,n2=orden1,n3=orden2,n4=orden3,n5=orden4,n6=orden5 y n7=orden6} n1:=strtofloat(edit8.Text); n2:=strtofloat(edit7.Text); n3:=strtofloat(edit6.Text); n4:=strtofloat(edit5.Text); n5:=strtofloat(edit4.Text); n6:=strtofloat(edit3.Text); n7:=strtofloat(edit2.Text); while (error>eros) do begin FXL:= (N1*XL)+(N2*XL)+(N3*XL)+(N4*XL)+(N5*XL)+(N6*XL)+(N7*XL); FXU:= (N1*XU)+(N2*XU)+(N3*XU)+(N4*XU)+(N5*XU)+(N6*XU)+(N7*XL); {PRIMER PASO} m1:= fxl*fxu; XR:=(XL*XU)/2; {PASO 2} FXR:= (N1*XR)+(N2*XR)+(N3*XR)+(N4*XR)+(N5*XR)+(N6*XR)+(N7*XR); // **********ERROR EN ESTA LINEA********** m2:= FXL*FXR; if m2<0 then begin {inciso a} xu:=xr; FXU:=FXR; end else begin {inciso b} xl:=xr; FXL:= FXR; end; error:= ((xu-xl)/xu)*100; floattostr(error); error:= Abs(error); end;//while label12.Caption:='MARGEN DE ERROR ES '+floattostr(error);end;//proceso
Editado:
Agregué un distinctivo a la linea donde está el error.
--- Citar --- // **********ERROR EN ESTA LINEA**********
--- Fin de la cita ---
Enko:
¿Cual es el error y en que linea ocurre?
Alpha_:
Supongo que tu problema será en la conversión de los datos. Si es que estás usando datos con decimales, no podés usar la función StrToInt, porque no te servirá de mucho. Intentá con el procedimiento Val, puede servirte.
--- Código: Text ---val(const var S: string, var I, var code: Integer);
Si todo va bien, se convierte la cadena S en la variable numérica I, y Code vuelve en cero. En caso contrario, code contiene el número de caracter que causó error en la conversión.
Saludos.
bartolomeo:
El motivo de este post no es para dar una respuesta a el inconveninte del forista, si no para recalcar en que hay que leer las recomendaciones de como formular preguntas y los TITULOS DE LOS POST.
estos titulos deben ser descriptivos para que cuando se genere una busqueda sea facil identificarlos.
por lo cual rechazo todo post que no tenga una calidad minima en sus preguntas y en la de sus titulos.
Amilius:
Pues definitivamente por el bien del foro es mejor eliminar los temas huerfanos de un buen titulo y que no tengan preguntas claras y puntuales.
Navegación
[#] Página Siguiente
Ir a la versión completa