
Numeros romanos
PHP
23.151 visualizaciones desde el 22 de Mayo del 2003
Funcion para mostrar la representación en numeracion romana un valor decimal pasado como parámetro.
<?
//############################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.