я провел свою программу, и я увидел в журнале программы, что один из моих аргументов является неправильным, так что я пытался отладить ее,кода Java производит неверный результат
я пытался выполнить это:
double test = ((9 + 13) * (9 + 1594) * (2157 + 13) * (2157 + 1594));
ответ должен быть 287053602220
, но это дает мне -7.09206612E8
при попытке
double t1 = (9 + 13) * (9 + 1594);
double t2 = (2157 + 13) * (2157 + 1594);
test = t1 * t2;
Это дает мне настоящий результат
в чем причина?
Ужасный вопрос название! Пожалуйста, будьте более конкретными в своих вопросах, чтобы помочь людям находить вопросы. –
Этот ответ, конечно, совершенно правильный, он просто не соответствовал вашим ожиданиям. Все части этого выражения являются 'int', поэтому используется семантика 'int'. 287053602220 не может быть представлен как 'int', он переносится на -709206612 (который затем преобразуется в' double', когда уже слишком поздно). – harold