Использование буквы "e" в записи чисел Java
В других языках таких как JS, PHP, Python запись чисел с использованием буквы e не вызывает никаких трудностей
const number = 1e6
// Будет равно 1 000 000
но в Java
public class main {
public static void main(String[] args) {
int a = 1e6;
}}
Выводится:
java: incompatible types: possible lossy conversion from double to int
Причём с числами с плавающей запятой никаких ошибок не возникает. Но с целыми...
double a = 1e6;
//Сохранится как 1000000.00.
Кто может объяснить почему так, как это исправить?
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Потому что такое выражения - это представление вещественного числа, а присваивание вещественных чисел в целые может привести к потере данных, поэтому это нужно явно делать:
int a = (int) 1e6;
System.out.println("a: " + a);
// a: 1000000
Подобные числа можно еще в таком виде описывать:
int b = 1_000_000;
System.out.println("b: " + b);
// b: 1000000