2014-02-19 3 views
-1

длинный использует 8 байт и float также использовать 8 байт. Но float может представлять все значения long и имеет более широкий диапазон, чем long. Итак, зачем нам длинным типа?Зачем нам нужен длинный тип?

+2

Это вопрос точности. –

+1

Float не может точно указать все значения long. – Blorgbeard

+0

Зачем голосовать -1 за мой пост - -! – happyWinner

ответ

0

Рассмотрите тот факт, что long и float, как вы указали, имеют длину 8 байтов. Это означает, что они могут представлять одинаковое количество значений, а именно, 2^64 различных значений.

Как вы сказали, float может представлять гораздо более широкий диапазон значений, чем длинный. Поэтому следует, что float не может представлять каждые значение в этом диапазоне. Числа с плавающей запятой - это приближение.

Например, long может быть способен представлять 100, 101 и 102, в то время как float может представлять только 100 и 102. Это просто примеры, но концепция имеет значение true - float не может представлять, в точности, каждый значение вдоль его диапазона.

Два типа данных «интерпретируются» по-разному. Биты «00110101» переводят на одно число, если оно длинное, и совершенно другое число, если оно является плавающей точкой.

Вы можете прочитать полную информацию о долгот и всплывают в спецификации языка Java:

Типы Integer: http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1

плавающих типов: http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3

+0

Большое вам спасибо. – happyWinner

+0

Но 101 равно 1.100101 * (2^6) в двоичном формате. Я полагаю, что 101 может быть представлен float? – happyWinner

+0

У меня возникла твоя идея. Например, если часть frac с плавающей запятой была 4 бит, тогда float не мог представлять 1000001. Правильно ли это? – happyWinner

Смежные вопросы