Функции для работы с числами

Объект Global

Объектный тип Global содержит так называемые высокоуровневые свойства и методы. Это единственный встроенный тип JavaScript, не имеющий конструктора, поэтому нельзя создавать экземпляры объектов типа Global. Свойства и методы Global доступны сразу же после начала работы интерпретатора (при обращении к ним не надо указывать имя объекта Global, а только имя свойства или функции).

Для объектного типа Global определены следующие свойства: infinity – числовое значение, представляющее бесконечность и NaN – значение, представляющее не число.

Для объекта Global определены следующие группы функций:

· функции для работы с числами;

· функции кодировки;

· функция eval().

Для работы с числами в объекте Global определены функции parseInt(), parseFloat(), isNaN()и isFinite().

Функция

parseInt(строка, основание)

анализирует строку и возвращает целое число. Если начало строки – число, возвращается это число (символы после последней цифры игнорируются). Если строка начинается не со знака "+" или "-" и не с цифры – возвращается NaN. Второй параметр основание задает число – основание системы счисления, в которой представлено число в первом параметре (равно 2 для двоичной системы счисления, 8 – для восьмеричной, 10 – для десятичной и 16 – для шестнадцатеричной системы счисления). Если параметр не задан или его значение равно 0, функция преобразует строку в число по следующему алгоритму:

· если параметр строка начинается с символов "0x", предполагается, что строка – шестнадцатеричное число;

· если параметр строка начинается с символов "0", предполагается, что строка – восьмеричное число;

· если параметр строка начинается со знака "+" или "-" или с цифры, предполагается, что строка – десятичное число.

Функция

parseFloat(строка)

анализирует строку и возвращает число с плавающей точкой. Если начало строки – число, возвращается это число (символы после последней цифры игнорируются). Если строка начинается не со знака "+" или "-" и не с цифры – возвращается NaN.

Функция

isNaN(число)

возвращает true, если аргумент является не-числом (NaN) и false – в противном случае.

Функция

isFinite(число)

возвращает true, если аргумент является конечным числом и false – в противном случае (если число – положительная или отрицательная бесконечность).

Пример 4.4.44. Использование функций объекта Global для работы с числами:

1. // Функция ввода и проверки операнда – целого числа

function intOperand(name)

{

while(true)

{

// Получение строкового значения операнда

inputString = prompt("Введите " + name +

" (целое число):","");

// Перевод строкового значения в число

number = parseInt(inputString);

// Если строковое значение - число

if(!isNaN(number))

// Выход из цикла

break;

// Вывод сообщения об ошибке

alert("Неверное число: " + inputString);

}

// Возврат числа

return number;

}

// Определение первого операнда

number1 = intOperand("первое слагаемое (целое число)");

// Определение второго операнда

number2 = intOperand("второе слагаемое (целое число)");

sum = number1 + number2; // Суммирование операндов

alert("sum=" + sum); // Вывод суммы

В этом фрагменте сценария с помощью функции prompt() вводятся два операнда. Поскольку возвращаемое функцией значение является строкой, оно преобразуется в целое число с помощью функции parseInt(). С помощью функции isNaN() проверяется, является ли результат преобразования числом. Если результат – число, выполняется выход из бесконечного цикла и возврат из функции, иначе выводится сообщение об ошибке и цикл ввода и проверки числа повторяется.

Вывод этого фрагмента на экран имеет следующий вид:

 

2. Изменим первую и вторую строку функции в предыдущем пункте на

// Функция ввода и проверки операнда – числа

// с плавающей точкой

function floatOperand(name),

а строку

number = parseInt(inputString);

на строку

number = parseFloat(inputString);.

Фрагмент сценария с вызовом функции floatOperand(), выполнением деления и проверкой, является ли результат деления целым числом:

// Определение первого операнда

number1 = floatOperand("делимое (вещественное число)");

// Определение второго операнда

number2 = floatOperand("делитель (вещественное число)");

quotient = number1 / number2; // Деление операндов

// Если результат деления – конечное число

if(isFinite(quotient))

alert("quotient=" + quotient); // Вывод суммы

else

alert("Деление на ноль"); // Вывод сообщения

В случае ошибки вывод на экран имеет следующий вид:

 

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: