Проверка на дурака
Есть готовый скрипт "Перевод из одной системы счисления в другую", не знаю, как написать ошибку при выводе неправильных данных. Пример:
1)Вводим число 128 2)Ставим "из системы" 8-миричной 3)В систему 16-тиричную и он в ответ в выдает значение "а", как это исправить, чтобы он выдавал ошибку при таких значениях...? <html> <head> <title>Перевод из одной системы счисления в другую</title> <script LANGUAGE="JavaScript"> function convert(form) { //получаем данные из поле ввода, преобразуя их в Integer base_from = parseInt(form.base_from.value); base_to = parseInt(form.base_to.value); //преобразуем данные по основанию base_from в десятичную систему num = parseInt(form.num.value, base_from); //преобразуем данные из десятичной в систему по указанному основанию base_to amount = num.toString(base_to); //выводим результат form.amount.value = amount } </script> </head> <body> <form name="Convert_form"> <p>Перевести <input type="text" name="num" size="8"> из системы <input type="text" name="base_from" size="8" value="2"> в систему <input type="text" name="base_to" size="8" value="2"> <input type="button" value=" = " onclick="convert(this.form)"> <input type="text" name="amount" size="15"> </p> </form> </body> </html> |
Надо проверить, будет ли переведённое в десятичную систему число равно самому себе, если его обратно перевести в ту же систему счисления.
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Перевод из одной системы счисления в другую</title> <meta http-equiv="X-UA-Compatible" content=" IE=edge, chrome=1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"> </head> <body> <form> Перевести <input type="text" name="num" size="8"> из системы <input type="text" name="base_from" size="8" value="2"> в систему <input type="text" name="base_to" size="8" value="2"> <input type="button" value=" = " onclick="convert(this.form)"> <input type="text" name="amount" size="15"> </form> <script> function convert(form) { //получаем данные из поле ввода, преобразуя их в Integer base_from = parseInt(form.base_from.value); base_to = parseInt(form.base_to.value); //преобразуем данные по основанию base_from в десятичную систему num = parseInt(form.num.value, base_from); if(num.toString(base_from) !== form.num.value) { form.amount.value = "#ERROR"; throw new RangeError("Invalid number"); } //преобразуем данные из десятичной в систему по указанному основанию base_to amount = num.toString(base_to); //выводим результат form.amount.value = amount } </script> </body> </html> |
Спасибо большое, все работает)
|
Часовой пояс GMT +3, время: 02:24. |