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 16-12-2008
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Question validar decimales con "coma"

Hola compañeros:

Estoy intentando validar una entrada de tipo float, vale decir 23,54. El problema es que me topo que las funciones tipo is_float que maneja PHP validan para formato americano, ej: 23.54 o sea con el punto como separador de decimales.

Estoy intentando usar el setlocate(LC_NUMERIC, "es"), pero solo me sirve para mostrar el dato en configuración español, pero no así para las funciones que utiliza el propio PHP . ¿Alguna solución que conozcan?

Gracias....
__________________
No todo es como parece ser...
Responder Con Cita
  #2  
Antiguo 16-12-2008
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Intenta con la siguiente función, todos los valores float te los convierte a punto decimal.

Código PHP:
function parseFloat($ptString) { 
            if (
strlen($ptString) == 0) { 
                    return 
false
            } 
             
            
$pString str_replace(" """$ptString); 
             
            if (
substr_count($pString",") > 1
                
$pString str_replace(","""$pString); 
             
            if (
substr_count($pString".") > 1
                
$pString str_replace("."""$pString); 
             
            
$pregResult = array(); 
         
            
$commaset strpos($pString,','); 
            if (
$commaset === false) {$commaset = -1;} 
         
            
$pointset strpos($pString,'.'); 
            if (
$pointset === false) {$pointset = -1;} 
         
            
$pregResultA = array(); 
            
$pregResultB = array(); 
         
            if (
$pointset $commaset) { 
                
preg_match('#(([-]?[0-9]+(\.[0-9])?)+(,[0-9]+)?)#'$pString$pregResultA); 
            } 
            
preg_match('#(([-]?[0-9]+(,[0-9])?)+(\.[0-9]+)?)#'$pString$pregResultB); 
            if ((isset(
$pregResultA[0]) && (!isset($pregResultB[0]) 
                    || 
strstr($preResultA[0],$pregResultB[0]) == 
                    
|| !$pointset))) { 
                
$numberString $pregResultA[0]; 
                
$numberString str_replace('.','',$numberString); 
                
$numberString str_replace(',','.',$numberString); 
            } 
            elseif (isset(
$pregResultB[0]) && (!isset($pregResultA[0]) 
                    || 
strstr($pregResultB[0],$preResultA[0]) == 
                    
|| !$commaset)) { 
                
$numberString $pregResultB[0]; 
                
$numberString str_replace(',','',$numberString); 
            } 
            else { 
                return 
false
            } 
            
$result = (float)$numberString
            return 
$result

+Info

Saludos.
Responder Con Cita
  #3  
Antiguo 16-12-2008
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Se agradece, a la noche lo pruebo y aviso.

Gracias...
__________________
No todo es como parece ser...
Responder Con Cita
  #4  
Antiguo 26-12-2008
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

Me salió un imprevisto durante la semana pasada, pero ahora acabo de probarlo y funciona perfecto. gracias.

Saludos .-
__________________
No todo es como parece ser...
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
"OBJECT OR CLASS TYPE REQUIRED" en "APPLICATION EXENAME" Xavierator Varios 3 27-10-2008 09:09:50
Un usuario logra validar Ubuntu como "Windows auténtico" ArdiIIa La Taberna 0 18-06-2007 20:17:00
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
¿cuál es mejor: "close" o "application.terminate"? unreal4u Varios 5 05-03-2007 11:01:19
problemas para validar el "enter" chr(13) sakuragi OOP 13 19-03-2004 18:06:20


La franja horaria es GMT +2. Ahora son las 13:50:44.


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