Сейчас: 19:06:42   26-го апреля 2024 г.
UsefulScript.ruСкриптыРазныеПеревод в римские числа
8
35

Скрипт перевода в римские числа и обратно

Предлагаем Вашему вниманию JavaScript код, при помощи которого Вы сможете переводить арабские числа в римские и обратно. При помощи данного кода Вы легко можете удивить Ваших посетителей, отобразив какие-либо числа в виде римских цифр.


Для того чтобы убедиться в работоспособности скрипта воспользуйтесь формой перевода чисел расположенной ниже.


Обращаем Ваше внимание, что для вывода корректного результата работы скрипта рекомендуется вводить числа до 40 тысяч (т.к. ↂ = 10000). Если Вам требуется перевести большое число (например, 123456), то разбейте его по три знака (123 и 456) и переведите каждое число в отдельности. После перевода объедините получившиеся числа (CXXIII CDLVI) т.к. такой вариант написания длинных чисел тоже допускается.


Число:
В римские В арабские

Результат:
Код:

Для получения у себя точно такой же формы перевода арабских чисел в римские и обратно, для начала добавьте на свой сайт следующую форму:

HTML код:
<div style="text-align: center;">
<
form name="transfer_form">
Число: <input type="text" size="10" name="numeric"><br>
<
input type="radio" name="direction" value="arab-roman" checked>В римские
<input type="radio" name="direction" value="roman-arab">В арабские<br>
<
input type="button" value="Перевести" onclick="translater()"><br>
Результат: <b><span id="rez"></span></b><br>
Код: <input type="text" size="25" name="numerals">
</
form>
</
div>

Дальше необходимо добавить JavaScript код, который выполняет преобразование чисел в нужном направлении. Для этого скопируйте код, расположенный ниже себе на сайт:

JavaScript код:
<script type="text/javascript">
var 
font_ar = [1,4,5,9,10,40,50,90,100,400,500,900,1000,4000,5000,9000,10000];
var 
font_rom = ["I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M",
"M&#8577;","&#8577;","&#8577;&#8578;","&#8578;"];

function 
to_roman(text) {
 if (!
text) return "";
 var 
rezult "";
 var 
font_ar.length 1;
 while (
text 0) {
    if (
text >= font_ar[n]) {
        
rezult += font_rom[n];
        
text -= font_ar[n];
    }
    else 
n--;
 }
 return 
rezult;
}

function 
to_arab(text) {
 var 
text text.toUpperCase();
 var 
rezult 0;
 var 
posit 0;
 var 
font_ar.length 1;
 while (
>= && posit text.length) {
    if (
text.substr(positfont_rom[n].length) == font_rom[n]) {
        
rezult += font_ar[n];
        
posit += font_rom[n].length;
    }
    else 
n--;
 }
 return 
rezult;
}

function 
translater() {
 
obj document.transfer_form;
 
str obj.numeric.value;
 if (
obj.direction[0].checked == trueitog to_roman(str);
 else 
itog to_arab(str);

 
obj.numerals.value itog;
 
rez.innerHTML itog;
}
</script>

Как Вы могли заметить, для обозначения римских цифр мы используем аналоги из английского алфавита. В коде также присутствуют коды Юникода &#8577; и &#8578;, которые соответствуют символам и соответственно. При этом ↁ = 5000, а ↂ = 10000.

Дата создания: 17:44:35 13.10.2012 г.
Дата обновления: 19:29:22 28.03.2013 г.
Посещений: 19198 раз(а).

Комментарии посетителей (5 шт.):
sonraid
0
# 3034
(20:35:19  09.02.2016 г.)

Здравствуйте в google chrome не работает скрипт.
Ответить

Administrator
0
# 3035
(22:49:24  09.02.2016 г.)

Действительно Google Chrome в скрипте не нравилось имя функции translate(), пришлось заменить на translater() и все заработало.
Ответить

tendo993
0
# 4665
(16:20:03  08.06.2020 г.)

Скрипт работает не корректно.
Если ввести "IIX" он выдаст 2, хотя такой цифры нет в римском.
Ответить

Administrator
0
# 4669
(22:11:37  12.06.2020 г.)

Ну так Вы ввели некорректное число и получили некорректный ответ. Стоило, наверно, добавить регулярное выражение для проверки римских цифр.
Ответить

Елена
-1
# 4892
(15:36:54  30.01.2022 г.)

Спасибо Вам огромное, что поделились своим кодом! Мне он очень помог! Всем Вам благ!
Ответить

Закрыть
Ваше имя:
688 + 6 =
Добавить комментарий:
Ваше имя:
688 + 6 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 7

Какую CMS для сайта Вы предпочитаете?