
Numeros romanos
PHP
23.364 visualizaciones desde el 22 de Mayo del 2003
Funcion para mostrar la representación en numeracion romana un valor decimal pasado como parámetro.






(3)














<?
//############################dec_romana ($numero,$case)################
//#
//# - De decimal a numeración romana
//#
//# case da la opción de representar el numero con símbolos
//# en minúscula o mayúscula (xlvii ó XLVII). Será "l" para
//# el primer caso y "u" para el segundo (lower, upper)
//#####################################################################
function dec_romana ($numero,$case)
{$simbolos=array("I","V","X","L","C","D","M");
$valores=array ("1","5","10","50","100","500","1000","5000");
if ($numero<=3999) {
while ($numero>0)
{ $i=0;while ($i<7)
{while ($numero>=$valores[$i] && $numero<$valores[$i+1])
{$par=$i%2; // paridad
if ($numero>=$valores[$i+1]-$valores[$i-$par])
{$romano=$romano.$simbolos[$i-$par].$simbolos[$i+1];
$numero=$numero-($valores[$i+1]-$valores[$i-$par]);
}else
{$romano=$romano.$simbolos[$i];
$numero=$numero-$valores[$i];
} }$i++;
} }if ($case=="l") $romano=strtolower ($romano);
}else $romano="overflow";
return $romano;
}// Ejemplo de uso -->
//echo $numero=dec_romana("2349","u");
?>
Comentarios sobre la versión: Versión 1 (3)
Gracias por tu script
excelente !!!
saludos
Me has ahorrado mucho trabajo, me es muy útil ahora, gracias.