Системы счисления
Преобразование представления числа в заданную систему счисления. В первом текстовом поле вводится целое десятичное число. При нажатии одной из кнопок: "Hex", "Oct" или "Bin" число переводится соответственно в шестнадцатеричное, восьмеричное или двоичное представление и результат выводится во втором текстовом поле. Если введенный операнд не является целым десятичным числом, во втором текстовом поле выводится сообщение "Ошибка".
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head> <script> window.onload = function() { document.MMM = document.getElementsByName('MMM')[0]; document.MMM2 = document.getElementsByName('MMM')[1] } Number.prototype.sys = String.prototype.sys = function(s) { var x = Number(this); if (!x) return 'Ошибка' x = x.toString(s); return x; } </script> </head><body> <input type="text" name="MMM"><br> <input type="button" value="hex" onclick="document.MMM2.value = document.MMM.value.sys(16)"><input type="button" value="oct" onclick="document.MMM2.value = document.MMM.value.sys(8)"><input type="button" value="bin" onclick="document.MMM2.value = document.MMM.value.sys(2)"> <input type="text" name="MMM"> </body></html> |
Огромное спасибо!
|
Раед, попробуйте конвертировать 0 (нуль) :-/
|
Раед,
Представьте что за каждое бессмысленное, ненужное и неуместное изменение стандартных прототипов, а равно любых не своих прототипов отрубали бы по одной руке. У меня для вас плохие новости. |
Agness, лучше так:
<html> <head> <script> function convert(n) { var inp= document.getElementById("in"); var out= document.getElementById("out"); if (isNaN(parseFloat(inp.value))) { out.value= "Введите число" } else { out.value= parseFloat(inp.value).toString(n) } } </script> </head> <body> <input id="in" /> <input id="out" readonly /><br /> <button onclick="convert(2)">Bin</button><br /> <button onclick="convert(8)">Oct</button><br /> <button onclick="convert(16)">Hex</button><br /> </body> </html> |
Цитата:
|
Раед, расширение стандартных свойств должно быть оправданно. А в вашем решении оправданностью и не пахнет. Изменять прототипы нужно ну крайне аккуратно - минус утечки памяти, неизвестные ошибки и прочие радости. Чем локальнее работает каждый кусок программы - тем устойчивее система в целом.
|
Цитата:
Ещё вопрос: чем isNaN(num) отличается от num===NaN и что лучше юзать? |
Цитата:
|
Часовой пояс GMT +3, время: 13:02. |