FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
aproximar numero hasta dos decimales
Hola!:
Mi duda es la siguiente: ¿cómo puedo convertir en delphi un float a entero y que me corte directamente los decimales? Tengo k hacer un programa que metiendo un número flotante me abrevie ese número a sólo dos decimales en delphi. Y más o menos tengo la idea básica pero si se pudiera cortar todos los decimales como cuando pasas un flotante a entero en c.... bye y gracias adelantadas.
__________________
Letty http://usuarios.lycos.es/buffangel |
#2
|
|||
|
|||
puedes hacerlo de muchas maneras, todo depende de lo que quieras conseguir
Trunc(MiReal * 100) / 100 FormatFloat('#,##0.00', MiReal) ..... No se, explica un poco más que es lo que quieres conseguir |
#3
|
|||
|
|||
Gracias y listo.
Hola!:
Ya he solucionado el problema. Muchas gracias por responder. Al final lo solucioné con la función formatfloat que por muy raro que suene, la desconocía. Gracias Cadetill y hasta pronto. No he podido responder antes.
__________________
Letty http://usuarios.lycos.es/buffangel |
#4
|
|||
|
|||
Otra vez dudas tontas
Hola de nuevo:
Tengo el siguiente problema: Yo hago lo siguiente al pulsar un botón: procedure TForm1.Button1Click(Sender: TObject); var numero : real; st : string; begin st:= ednumero.Text; st:= FormatFloat('#,##.00',strtofloat(st)); ShowMessage(st); //aquí muestra el mensaje perfectamente,todo muy bien numero:= StrToFloat(st); Y justo en el paso de string a float me da un error diciendo que ese no es un valor float [project project1.exe raised exception class eConvertError with message “1.000,00’ is not a valid floating point value’.Proccess stopped], yo no lo entiendo. A ver si me podéis ayudar por favor porque es algo rarísimo. Gracias de antemano.
__________________
Letty http://usuarios.lycos.es/buffangel |
#5
|
|||
|
|||
Es normal, porque al ponerle el formato, le estás añadiendo el punto de los millares que, al hacer la transformación, no sabe que es.
Puedes hacer varias cosas: 1.- No pones en la máscara el punto de los millares (algo así 0.00) 2.- Te curras una función que te quite el separador de millares y que te haga (ya que estmamos) la conversión de tipos 3.- Accedes otra vez al componente para recuperar de nuevo el valor |
#6
|
||||
|
||||
Disculpa cadetill pero a mi me parece que el error no está en FormatFloat sino en StrToFloat. De la ayuda de Delphi:
Cita:
// Saludos |
#7
|
|||
|
|||
Quedas disculpado Román pero, yo no decía (o no pretendía decir) que el error fuera del FormatFloat. Si te fijas, decía en mi mensaje anterior :
Cita:
Por eso una de las coss que le sugería, era no poner los odornos (opción 1), para que StrToFloat supiera que hacer con el numerito en qüestión. Nos leemos |
|
|
|