Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-05-2007
rubencho rubencho is offline
Miembro
 
Registrado: mar 2007
Posts: 14
Poder: 0
rubencho Va por buen camino
formatear un float a una longitud maxima

Hola..
Tengo una base de datos que no puedo modificar y me esta aceptando un campo que como maximo me puede albergar 10 caracteres incluido el punto decimal.

Como puedo formatear un numero x de forma que lo pueda insertar en la db..
Por ejemplo, como resultado de algun calculo obtengo un valor de:

67456.3456935
y lo que debo guardar entonces será
67456.3456 o redondeado a 67456.3457

234.345 debe quedar igual
9876543219.234 debe quedar 9876543219

Alguna idea ?
Responder Con Cita
  #2  
Antiguo 26-05-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Se me ocurre que usando las funciones FloatToStr y Copy se puede conseguir fácilmente.

Código Delphi [-]
var
  s: string;
begin
  s := Copy(FloatToStr(Valor), 1, 10);
end;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 27-05-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Creo que se refiere a PHP donde hay funciones como Round. Pero, sinceramente, hay un problema de diseño aquí. No puedes alterar la base, ya lo has dicho, pero ¿de qué sirve guardar datos a los que puedes tranquilamente cepillarle la parte fraccionara en algunos casos, y no digamos ya números con más de diez dígitos enteros? Podrás guardar los datos, pero de poco te servirá. Vaya, que suena raro.

// Saludos
Responder Con Cita
  #4  
Antiguo 28-05-2007
rubencho rubencho is offline
Miembro
 
Registrado: mar 2007
Posts: 14
Poder: 0
rubencho Va por buen camino
comentarios

Hola compañeros.
Gracias por sus comentarios...

jachguate: hay alguna manera de implementar eso en php ?

roman: en cuanto a lo del error de diseño me inclinaría por pensar que no existe tal error....porque viendolo de la siguiente manera:

Si el resultado de alguna operación es un entero que tiene diez cifras, la parte decimal para ese numero que ya es un poco grande, tiende a ser insignificante comparativamente....si ese resultado fuera mayor que diez cifras...se hace la validación correspondiente indicando que la cifra no es viable para la función que se está implementando....

Si por el contrario ese resultado es algo tan pequeño del orden de 0.xxxxxxxx es posible recortarle los digitos que estan más a la derecha y para los efectos de la aplicación no tendrá mayor relevancia tal recorte....

El problema está cuando existe una parte entera y una decimal, suponiendo que el calculo arroje un numero con una parte decimal demasiado grande pero la parte entera este dentro del rango permitido por la función a la que se le quiere hacer llegar ese resultado...
si por decir algo el numero fuera 45677.3333333333333333333333333333
es viable recortar ese numero a 45677.3333 para que pueda ser mas adelante tomado por una funcion que lo requiera.

Para la aplicación...el numero maximo que se le puede entrar es de 9999999999 por lo tanto, 99999999.34847565 es un número válido, pero en la base de datos solo podría almacenar 99999999.3 por su limitante de 10 caracteres.


Nuevamente agradezco cualquier comentario o ayuda al respecto...
Responder Con Cita
  #5  
Antiguo 29-05-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Lamento la confusión, no me di cuenta que se trataba de php, pero según recuerdo, en este existe la función substr, que es mas o menos equivalente al copy de pascal.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 29-05-2007
semptrion semptrion is offline
Miembro
 
Registrado: abr 2007
Posts: 112
Poder: 18
semptrion Va por buen camino
Funciones php...

Quizá esto te sirva:

round

y

sprintf

Saludos
Responder Con Cita
  #7  
Antiguo 29-05-2007
semptrion semptrion is offline
Miembro
 
Registrado: abr 2007
Posts: 112
Poder: 18
semptrion Va por buen camino
Una función más

Y para ajustar a una longitud dada:

str_pad
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Longitud maxima de un array tipo string!! cristian_abb Varios 5 25-07-2006 23:53:39
Formatear fechas y float selman Firebird e Interbase 1 13-07-2006 03:41:31
Longitud Maxima Para Un Input->text CARLOS E HTML, Javascript y otros 1 10-06-2006 00:10:05
Longitud máxima para una consulta SQL moesis Conexión con bases de datos 3 17-08-2004 23:54:43
Longitud maxima integer cinecito Varios 10 12-05-2004 03:06:22


La franja horaria es GMT +2. Ahora son las 13:45:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi