• Publicidad

Problema con números decimales

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Problema con números decimales

Notapor animal collective » 2012-02-07 09:42 @446

Estimados,

Estoy presentando problema al comparar valores numéricos que estoy sacando de una BD.

Cuando hago la consulta sql y me trae un valor, como 1,222200, la aplicación funciona bien; realiza la comparación y entra en el if ($var > 0).

Pero hay ocasiones en que la base de datos me trae los siguientes valores: ,22220.

En estos casos la aplicación hace mal la comparación ya que entra en el if == 0 y arroja un mensaje crítico, siendo que ,222220 no es igual a 0.

Adjunto script,

Desde ya agradezco la ayuda.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #! /usr/bin/perl
  2.  
  3. $valor=`/usr/local/bin/sqlplus -u user/pass\@tnsname  -S -i \@\\/consulta.sql`;
  4. $var= $valor + 0;
  5.  
  6.  
  7. if($var == 0)
  8. {
  9.  
  10.    print (“CRITICAL”);
  11.  
  12. else
  13. {
  14.  if($var > 0)
  15.  {
  16.   print (“OK”);
  17.  }
  18. }
  19.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
animal collective
Perlero nuevo
Perlero nuevo
 
Mensajes: 39
Registrado: 2010-10-17 17:53 @786
Ubicación: Chile

Publicidad

Re: Problema con números decimales

Notapor explorer » 2012-02-07 09:55 @455

Si los números que recibes tienen una coma, en lugar de un punto decimal, ahí sí que veo el problema, ya que Perl, por defecto, entiende los números decimales solo con el punto decimal, ya que sigue la localización numérica anglosajona.

Para resolver tu problema, te vale con cambiar la línea siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $valor =~ s/,/./; $var = 0 + $valor;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


(Seguro que hay otras maneras, como por ejemplo, $var = 0+"0$valor"; -no probado en todos los casos-)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Problema con números decimales

Notapor animal collective » 2012-02-07 13:18 @596

Estimado,

Gracias, fue de mucha utilidad tu respuesta.

Saludos
animal collective
Perlero nuevo
Perlero nuevo
 
Mensajes: 39
Registrado: 2010-10-17 17:53 @786
Ubicación: Chile


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 42 invitados