Entradas

Mostrando entradas de mayo, 2009

PHP. módulo de un "long". Calcular dígito control de IBAN.

Calculando el DC dígito de control de un número de cuenta IBAN me he encontrado un problema con el módulo o resto. Al manejar un número que sobrepasa el integer, "no se exacta la barrera, pero supongamos que a partir de 2147483647 deja de ser nuestro integer de toda la vida", manual PHP. Enteros y al calcular el modulo de 97 de ese número long perdía la precisión y devolvía un resto incorrecto. Hay varias soluciones a esta situación, yo opté por usar bcmod function bcmod ya que en PHP hay funciones para casi todo y sino en www.phpclasses.org podremos encontrar alguna clase que nos facilite el desarrollo. Supongo que también se debe a la "anarquía" de PHP que no obliga a declarar el tipo de dato de la variable, aunque cada vez empiezo a encontrar más código en el que se hacen casting a las variables. En el mundo java un int es un int, un String es un String y un long es un long y todo el día haciendo casting pero siempre tienes claro que hay en una variable. $foo