¿Cuál es la diferencia entre int y double?
Existen tres tipos de variables en Flutter que te permiten almacenar números o dígitos:
- int;
- double;
- num.
Para explicarlo de manera simplificada, int solo acepta números enteros (1, 10, 100, etc.), double acepta números decimales (1.0, 2.7, 3.14, etc.), y num puede utilizarse para ambos.
Convertir int a double y viceversa
Si por alguna razón necesitas convertir tu variable int a double, o viceversa, Flutter ofrece el método .parse():
int valorInt = 100;
double valorDouble = 3.14;
int convertirInt = int.parse(valorDouble);
double convertirDouble = double.parse(valorInt);
print(convertirInt.runtimeType);
print(convertirDouble.runtimeType);
↪ int
↪ double
Mostrar un número en un texto
Las variables de tipo String y int o double son diferentes por una razón: los widgets que aceptan texto como parámetro solo pueden recibir variables de tipo String. Por lo tanto, tendrás que convertir tus números antes de poder mostrarlos, utilizando el método .toString():
int cuatro = 4;
Text(${cuatro.toString()});
Realizar operaciones con valores numéricos en Flutter
El propósito de almacenar números es, por supuesto, poder sumarlos, restarlos, etc. Aquí tienes los diferentes operadores que puedes usar con tus variables de tipo int o double.
Sumar
La primera operación que puedes realizar es, naturalmente, la suma, simbolizada por un +:
int cuatro = 4;
int dos = 2;
print(cuatro + dos);
↪ 6
Restar
Luego está la resta, simbolizada por un –:
int cuatro = 4;
int dos = 2;
print(cuatro - dos);
↪ 2
Incrementar
Incrementar significa aumentar un número en 1. Esta operación puede ser útil, por ejemplo, cuando se lleva un conteo. Se simboliza con ++:
int numero = 4;
numero++;
print(numero);
↪ 5
Decrementar
Decrementar, por el contrario, significa restar 1 a un número, como en una cuenta regresiva. Se simboliza con —:
int numero = 4;
numero--;
print(numero);
↪ 3
Multiplicar
Para multiplicar dos valores numéricos, puedes utilizar el símbolo *:
int cuatro = 4;
int dos = 2;
print(cuatro * dos);
↪ 8
Dividir
El símbolo para la división es /:
int cuatro = 4;
int dos = 2;
print(cuatro / dos);
↪ 2
Obtener el resto de una división
El símbolo % (llamado módulo) te permite obtener el resto de una división. Esto puede ser útil en algunos casos, como para determinar si un número es par o impar (si es par, el resultado será 0 al dividir por 2):
int cinco = 5;
int dos = 2;
print(cinco % dos);
↪ 1
Propiedades para usar con variables int o double
Aquí tienes algunas propiedades que puedes utilizar con tus valores numéricos.
Saber si un número es negativo
La propiedad isNegative te permite saber si tu número es negativo. Si es el caso, el resultado será true:
int cinco = 5;
print(cinco.isNegative);
↪ false
Por el contrario, la propiedad isNaN devolverá true si la variable no es un número:
int cinco = 5;
print(cinco.isNaN);
↪ false
Finalmente, una manera de conocer el signo de un número es usar la propiedad sign. Esta devolverá un valor de 1, 0, o -1 según la magnitud del número. Un valor positivo devolverá 1, 0 devolverá 0, y un número negativo devolverá -1:
int cinco = 5;
print(cinco.sign);
↪ 1
Saber si un número es finito
Para determinar si el valor almacenado en una variable de tipo int o double es finito, puedes usar la propiedad isFinite:
int cinco = 5;
print(cinco.isFinite);
↪ true
Por el contrario, la propiedad isInfinite devolverá true si el valor es infinito:
int cinco = 5;
print(cinco.isInfinite);
↪ false
Saber si un número es par o impar
Finalmente, puedes saber si un número es par o impar utilizando las propiedades isEven (par) e isOdd (impar):
int cinco = 5;
print(cinco.isEven);
print(cinco.isOdd);
↪ false
↪ true
Métodos de Flutter relacionados con los int y los double
A continuación, se presenta una lista no exhaustiva de métodos que se pueden utilizar con tus variables de tipo int o double.
Redondear un double
El método .round() (redondeo) te permite redondear un número decimal a su valor absoluto más cercano. Por ejemplo:
double pi = 3.14;
print(pi.round());
↪ 3
También existe el método .ceil() (techo) que permite redondear un número decimal hacia el valor superior más próximo. Por ejemplo:
double pi = 3.14;
print(pi.ceil());
↪ 4
Por el contrario, .floor() (suelo) redondea tu número hacia el valor inferior más próximo. Por ejemplo:
double myNumber = 3.90;
print(myNumber.floor());
↪ 3
Obtener el valor absoluto de un número
Por valor absoluto, nos referimos al valor positivo de un número. Por ejemplo, 3 sería el valor absoluto de -3 (o de 3, aunque no tendría mucho sentido usar un método en este caso). Para obtener este valor, Flutter pone a nuestra disposición el método .abs():
int myNumber = -10;
print(myNumber.abs());
↪ 10
Encontrar el máximo común divisor entre dos números
Para encontrar el máximo común divisor entre dos números, puedes utilizar el método .gcd(). Este toma como argumentos los dos números que deseas comparar:
print(4.gcd(2));
print(8.gcd(4));
↪ 2
↪ 4
Conclusión
Ahora ya eres capaz de declarar y manipular variables de tipo Int o Double. ¿Por qué no seguir aprendiendo cómo crear listas?