Pers.narod.ru. PHP. Статьи. Конвертирование римских и арабских чисел |
Насчёт конвертации арабских чисел в римские в Интернете легко найти исходники на нескольких языках, в том числе, и на PHP, для конвертирования из римской записи в арабскую сделать это труднее, так что вот обе функции на PHP в одном пакете:
function arabic_to_roman ($value) { if ($value<0) $value=-$value; if (!$value) return "0"; $thousands=(int)($value/1000); $value-=$thousands*1000; $result=str_repeat("M",$thousands); $table=array ( 900=>"CM",500=>"D",400=>"CD",100=>"C", 90=>"XC",50=>"L",40=>"XL",10=>"X", 9=>"IX",5=>"V",4=>"IV",1=>"I"); while($value) { foreach($table as $part=>$fragment) if($part<=$value) break; $amount=(int)($value/$part); $value-=$part*$amount; $result.=str_repeat($fragment,$amount); } return $result; } function roman_to_arabic ($value) { $table=array ( 'I'=>1,'V'=>5,'X'=>10,'L'=>50,'C'=>100,'D'=>500,'M'=>1000 ); $length=strlen($value); $active=$result=0; for ($i=$length-1; $i>-1; $i--) { $next=$table[$value[$i]]; if ($next<$active) $result-=$next; else $result+=$next; $active=$next; } return $result; }
Скачать пример в архиве ZIP (2 Кб)
Онлайн-сервис преобразования римских и арабских чисел
Онлайн-версия может усовершенствоваться и чем-то отличаться.
гостевая; E-mail |