При попытке возведения в квадрат значения с (скорость света) выводится неверное число.
Должно быть:
89875517873681764
Для (long)Math.pow(c, 2) выводится:
89875517873681760
В чем проблема?
Math.pow работает с типом double. Отсюда и ошибка округления.
Хотите получить 89875517873681764, работайте с типом long:
long c = 299792458;
long pow2 = c * c;
BigInteger или BigDecimal: BigInteger.valueOf(c).pow(2).longValue().
– Alex Chermenin
Oct 26 '17 at 07:46
cто чему равно? – Suvitruf - Andrei Apanasik Oct 25 '17 at 13:07