Что такое плавание в Java?

java floating-point

367146 просмотра

4 ответа

858 Репутация автора

Я написал этот код:

float b = 3.6;

и я получаю это:

Ошибка: Нерешенная проблема компиляции: 
    Несоответствие типов: невозможно конвертировать из двойного в плавающее

Почему? Какое определение float?

Автор: t0mkaka Источник Размещён: 22.02.2011 10:05

Ответы (4)


38 плюса

208893 Репутация автора

Сделай это

float b= 3.6f;

Литерал с плавающей точкой имеет тип float, если к нему добавлена ​​буква ASCII F или f; в противном случае его тип является двойным, и к нему можно добавить суффикс ASCII-буквы D или d.

Автор: Jigar Joshi Размещён: 22.02.2011 10:06

13 плюса

11368 Репутация автора

Дело в том, что десятичные числа по умолчанию удваиваются. А поскольку double не вписывается в float, вы должны четко указать, что вы намеренно определяете float. Так что иди с:

float b = 3.6f;
Автор: Jan Zyka Размещён: 22.02.2011 10:09

169 плюса

21940 Репутация автора

Решение

В Java, когда вы вводите десятичное число как 3.6, оно интерпретируется как double. doubleэто 64-битная точность с плавающей точкой IEEE 754, а float32-битная точность с плавающей точкой IEEE 754. Поскольку a floatявляется менее точным, чем a double, преобразование не может быть выполнено неявно.

Если вы хотите создать число с плавающей точкой, вы должны закончить свой номер f(то есть:) 3.6f.

Для получения дополнительной информации см. Определение примитивных типов данных в руководстве по Java .

Автор: Nicolas Размещён: 22.02.2011 10:15

7 плюса

116 Репутация автора

В JAVA такие значения, как:

  1. 8,5
  2. 3,9
  3. (и так далее..)

Предполагается, как двойной и не плавать .

Вы также можете выполнить приведение для решения проблемы:

float b = (float) 3.5;

Другое решение:

float b = 3.5f;

Автор: Carlos Sá Размещён: 19.05.2015 05:02
Вопросы из категории :
32x32