(long)Math.pow(299792458,2) возвращает неверное число

328
27 октября 2017, 11:44

При попытке возведения в квадрат значения с (скорость света) выводится неверное число.

Должно быть:

89875517873681764

Для (long)Math.pow(c, 2) выводится:

89875517873681760

В чем проблема?

Answer 1

Math.pow работает с типом double. Отсюда и ошибка округления.

Хотите получить 89875517873681764, работайте с типом long:

    long c = 299792458;
    long pow2 = c * c;
READ ALSO
Как запустить десктоп приложение (JavaFX) на Android?

Как запустить десктоп приложение (JavaFX) на Android?

Есть JavaFX проект, который работает на дескотпеНужно запустить эту программу на Android

376
Как открыть файл java

Как открыть файл java

Есть путь к определеному файлу (storage/sdcard/filetxt)

364
Преобразование кода из javascript в java

Преобразование кода из javascript в java

Помогите пожалуйста доделать код

299
Получение элемента из коллекций

Получение элемента из коллекций

Доброго времени суток

274