Почему литерал типа double (подходящий для float) не авто-преобразовывается в float? Но при этом, аналогичным образом, подходящий литерал int авто-преобразовывается в byte, short?
byte a = 1; // литарел типа int, к byte еденица подходит – всё работает
float b = 1.0; // Ошибка: "Несоответствие типов: невозможно преобразовать double в float". Но ситуация аналогична команде выше!
Хотелось бы понять логику, соответствующую и первой и второй команде.
По умолчанию, литерал 1.0 имеет тип double. Автоматически преобразовать тип double во float нельзя, потому-что может быть утрачена точность числа (точность типа float меньше, чем типа double). Следует явно указать преобразование типов для переменных. Для литералов можно указывать суффикс f или F, например:
float b = 1.0f;
float c = 1.0F;
double d = 1.0;
float e = (float) d;
float f = (float) 1.0; // так тоже можно
float f = dF; // так нельзя, суффикс F применим только к литералам
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
не помогло and others didnt help? i work with phpmyAdmin? help me(другие случаи не работают) когда была локальная базаданных, все работало нормально, вот ссылка
Совсем новичок в Java, изучаю конструкторы и классыКак-бы встретилась проблема с выводом при "перезапуске" программы
Мне нужно вывести первый символ и проверить, чем он являетсяГде-то подсмотрел, что можно использовать str
Есть одна кнопка в вконтакте, как сделать её зацикленное нажатие с неким интервалом через Console в Ctrl+Shift+C? Раньше находил такой для добавления...