Muchas veces es necesario tener que mostrar números romanos, ya sea para tomos de capítulos o porque estéticamente quedan bien en nuestra página. Gracias a la siguiente función, es posible convertir números enteros en números romanos en PHP.
 

<?php
function convertirNum($num)
{
/*** intval(xxx) para que convierta explicitamente a int ***/
$n = intval($num);
$res = '';

/*** Array con los numeros romanos ***/
$roman_numerals = array(
'M' => 1000,
'CM' => 900,
'D' => 500,
'CD' => 400,
'C' => 100,
'XC' => 90,
'L' => 50,
'XL' => 40,
'X' => 10,
'IX' => 9,
'V' => 5,
'IV' => 4,
'I' => 1);

foreach ($roman_numerals as $roman => $number)
{
/*** Dividir para encontrar resultados en array ***/
$matches = intval($n / $number);

/*** Asignar el numero romano al resultado ***/
$res .= str_repeat($roman, $matches);

/*** Descontar el numero romando al total ***/
$n = $n % $number;
}

/*** Res = String ***/
return $res;
}
?>

Para utilizar la función de convertir números enteros en números romanos en PHP, lo único que deberemos hacer es copiar y pegarla en nuestro código al final o al principio del mismo. Luego si queremos convertir un número, realizamos lo siguiente:

<?php

echo "El Numero 100 en numero romano es: <strong>".convertirNum(100)."</strong>";
echo "<br/>";
echo "El Numero 799 en numero romano es: <strong>".convertirNum(799)."</strong>";

function convertirNum($num)
{
/*** intval(xxx) para que convierta explicitamente a int ***/
$n = intval($num);
$res = '';

/*** Array con los numeros romanos ***/
$roman_numerals = array(
'M' => 1000,
'CM' => 900,
'D' => 500,
'CD' => 400,
'C' => 100,
'XC' => 90,
'L' => 50,
'XL' => 40,
'X' => 10,
'IX' => 9,
'V' => 5,
'IV' => 4,
'I' => 1);

foreach ($roman_numerals as $roman => $number)
{
/*** Dividir para encontrar resultados en array ***/
$matches = intval($n / $number);

/*** Asignar el numero romano al resultado ***/
$res .= str_repeat($roman, $matches);

/*** Descontar el numero romando al total ***/
$n = $n % $number;
}

/*** Res = String ***/
return $res;
}
?>

De esta manera, nuestro resultado se vera de la siguiente manera:

El Numero 100 en numero romano es: C
El Numero 799 en numero romano es: DCCXCIX

La función para convertir números romanos la pueden reutilizarla tantas veces quieran en los programas que quieran.

Copyright © 2018-2020 Latirus. Todos los Derechos Reservados.