Hi

Can anyone tell me in php how to convert decimal to roman number.Can anyone provide some example for this.

thanks
punthapary

This is the code:

``````To functions to convert integers to roman figurs and back

<?php
// Function that calculates the roman string to the given number:
function dec2roman(\$f)
{
// Return false if either \$f is not a real number, \$f is bigger than 3999 or \$f is lower or equal to 0:
if(!is_numeric(\$f) || \$f > 3999 || \$f <= 0) return false;

// Define the roman figures:
\$roman = array('M' => 1000, 'D' => 500, 'C' => 100, 'L' => 50, 'X' => 10, 'V' => 5, 'I' => 1);

// Calculate the needed roman figures:
foreach(\$roman as \$k => \$v) if((\$amount[\$k] = floor(\$f / \$v)) > 0) \$f -= \$amount[\$k] * \$v;

// Build the string:
\$return = '';
foreach(\$amount as \$k => \$v)
{
\$return .= \$v <= 3 ? str_repeat(\$k, \$v) : \$k . \$old_k;
\$old_k = \$k;
}

// Replace some spacial cases and return the string:
return str_replace(array('VIV','LXL','DCD'), array('IX','XC','CM'), \$return);
}

// echo dec2romen(1981);

// Function to get the decimal value of a roman string:
function roman2dec(\$str = '')
{
// Return false if not at least one letter is in the string:
if(is_numeric(\$str)) return false;

// Define the roman figures:
\$roman = array('M' => 1000, 'D' => 500, 'C' => 100, 'L' => 50, 'X' => 10, 'V' => 5, 'I' => 1);

// Convert the string to an array of roman values:
for(\$i = 0; \$i < strlen(\$str); \$i++) if(isset(\$roman[strtoupper(\$str[\$i])])) \$values[] = \$roman[strtoupper(\$str[\$i])];

// Calculate the sum of that array:
\$sum = 0;
while(\$current = current(\$values))
{
\$next = next(\$values);
\$next > \$current ? \$sum += \$next - \$current + 0 * next(\$values) : \$sum += \$current;
}

// Return the value:
return \$sum;
}

// echo roman2dec(IX);
?>``````

Hey check this attachment,its works fine....

At the line 30 you can give your desired input and then see output...