Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
49
Добавлен:
12.05.2015
Размер:
1.82 Mб
Скачать

Глава 3. Типы данных, переменные и массивы

Таблица 3,2. Ширина и диапазоны типов с плавающей точкой

Имя

Ширина в битах

Диапазон

double

64

от 1.7е-308 до 1.7е+308

float

32

от 3.4е-038 до 3.4е+038

Рассмотрим каждый из этих типов.

Тип float

Тип float определяет значение с одинарной точностью, которое использует 32 бита памяти. Вычисления с одинарной точностью быстрее на некоторых процессорах, а значения занимают половину пространства значений двой­ной точности. Но тип оказывается неточным, когда его значения становятся или очень большими, или очень маленькими. Переменные типа float по­лезны, когда нужен дробный компонент, но не требуется большой степени точности. Например, тип float может быть полезен при представлении долларовых цен с учетом центов.

Пример объявления float-переменных:

float hightemp, lowtemp;

Тип double

Тип двойной точности, обозначаемый ключевым словом double, для хране­ния значений использует 64 бита памяти. На некоторых современных про­цессорах, которые были оптимизированы для высокоскоростных математи­ческих вычислений, операции с двойной точностью на самом деле выпол­няются быстрее, чем с одинарной. Все трансцендентные математические функции, типа sin(), cos() и sqrt(), возвращают double-значения. Когда нужно поддержать точность во многих итерационных вычислениях или ма­нипулировать с многозначными числами, double — лучший выбор.

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

// Вычислить площадь круга, class Area {

public static void main(String args[]) { double pi, r, a;

r = 10.8; // радиус круга

pi = 3.1416; //ПИ приближенно

a=pi*r*r; // вычисляет площадь

58 • Часгь /. Язык Java

System.out.println("Площадь круга равна " + а); -} }

Символьный тип (char)

Для хранения символов Java использует тип char. Однако, программисты C/C++, остерегайтесь: тип char в Java — не тот же, что в С или C++. В C/C++ char — целочисленный тип шириной в 8 бит. В Java это не так. Вместо этого, для представления символов Java использует Unicode. Unicode определяет полный набор интернациональных символов, который может представлять все символы, находящиеся во всех человеческих языках. Он объединяет множество наборов символов, таких как латинский, греческий, арабский, кириллица, иврит, Katakana, Hangul и многие другие. Для этой цели он требует 16 бит. Таким образом, char в Java — 16-разрядный тип данных. Диапазон его значений варьируется от 0 до 65 536. Нет никаких от­рицательных символов. Стандартный набор символов, известный как ASCII, все еще располагается в интервале значений от 0 до 127, как обычно, а рас­ширенный 8-разрядный набор символов, ISO-Latin-1, в диапазоне от О до 255. Так как язык Java разработан для записи апплетов "всемирного ис­пользования", то имеет смысл, чтобы для представления символов он ис­пользовал Unicode. Конечно, использование Unicode несколько неэффек­тивно для языков, подобных английскому, немецкому, испанскому или французскому, чьи символы могут легко содержаться в 8 битах. Но такова цена, которая должна быть заплачена за глобальную мобильность.

Более полную информацию о Unicode можно найти по адресу http:// www.unicode.org.

Вот программа, которая демонстрирует char-переменные:

// Демонстрирует тип данных char, class CharDemo {

public static void main(String args[]) { char chl, ch2;

chl = 88; // код для Х

ch2.= 'Y';

System.out.print("chl и ch2: "); System.out.println(chl + " " + ch2); } }

Соседние файлы в папке JavaLit