perl | Conversión o conversión automática de string a número

Perl tiene una forma diferente de tratar con los operadores porque aquí el operador define cómo se comportarán los operandos, pero en otros lenguajes de programación, los operandos definen cómo se comporta un operador. Casting se refiere a la conversión del tipo de datos de una variable en particular a otro tipo de datos. Por ejemplo, si hay una string «1234» y después de convertirla al tipo de datos int, la salida será un entero 1234. La conversión de string a entero en Perl tiene muchas formas. Uno es usar Typecasting , mientras que el otro implica el uso de la función ‘ sprintf ‘. A veces la gente no usa la palabra casting en Perl porque todo el proceso de conversión es automático.

encasillamiento

La conversión de tipo ocurre cuando asignamos el valor de un tipo de datos a otro. Si los tipos de datos son compatibles, Perl realiza la conversión automática de tipos. Si no son compatibles, deben convertirse explícitamente, lo que se conoce como conversión de tipo explícito. Hay dos tipos de encasillamiento:

  • Typecasting implícito: el propio compilador realiza la conversión de tipo implícita. No es necesario que el usuario mencione un tipo de conversión específico utilizando ningún método. El compilador por sí solo determina el tipo de datos de la variable si es necesario y lo corrige. En Perl, cuando declaramos una nueva variable y le asignamos un valor, automáticamente la convierte en un tipo de datos requerido.

    Ejemplo 1:

    # Perl code to demonstrate implicit 
    # type casting
      
    # variable x is of int type
    $x = 57;
      
    # variable y is of int type
    $y = 13;
      
    # z is an integer data type which
    # will contain the sum of x and y
    # implicit or automatic conversion
    $z = $x + $y;
      
    print "z is ${z}\n";
      
    # type conversion of x and y integer to 
    # string due to concatenate function
    $w = $x.$y;
      
    # w is a string which has the value: 
    # concatenation of string x and string y
    print "w is ${w}\n";

    Producción:

    z is 70
    w is 5713
    
  • Typecasting explícito: en esta conversión, el usuario puede convertir una variable a un tipo de datos en particular de acuerdo con los requisitos. Se requiere una conversión de tipo explícita si el programador quiere que una variable en particular sea de un tipo de datos en particular. Es importante mantener la consistencia del código para que ninguna variable cause un error debido a la conversión de tipo.

    Ejemplo: lo siguiente realiza un encasillamiento explícito donde una string (o cualquier tipo de datos) se convierte en un tipo específico (por ejemplo, int).

    # Perl code to demonstrate Explicit 
    # type casting
      
    # String type
    $string1 = "27";
      
    # conversion of string to int 
    # using typecasting int()
    $num1 = int($string1);
      
    $string2 = "13";
      
    # conversion of string to int
    # using typecasting int()
    $num2 = int($string2);
      
    print "Numbers are $num1 and $num2\n";
      
    # applying arithmetic operators 
    # on int variables 
    $sum = $num1 + $num2;
      
    print"Sum of the numbers = $sum\n";

    Producción:

    Numbers are 27 and 13
    Sum of the numbers = 40
    

función sprintf

Esta función sprintf devuelve un valor escalar, una string de texto con formato, que se encasilla según el código. El comando sprintf es un formateador y no imprime nada en absoluto.

# Perl code to demonstrate the use 
# of sprintf function
  
# string type
$string1 = "25";
  
# using sprintf to convert 
# the string to integer
$num1 = sprintf("%d", $string1);
  
$string2 = "13";
  
# using sprintf to convert 
# the string to integer
$num2 = sprintf("%d", $string2);
  
# applying arithmetic operators
# on int variables 
print "Numbers are $num1 and $num2\n";
  
$sum = $num1 + $num2;
print"Sum of the numbers = $sum\n";

Producción:

Numbers are 25 and 13
Sum of the numbers = 38

Publicación traducida automáticamente

Artículo escrito por SrijaPandey y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *