2016-05-27 10 views
0

им пытаются вычислить какое-то значение, но результат бесконечности:Почему 1 Разделенные 1/3 приведет к бесконечности Android Студия

double a; 
a=1/3; 
result=1/(a); 
Log.e("Result a : ", String.valueOf(result)); 

Результат Log

Result a : Infinity 

почему результат бесконечности? im попробовать этот код на excel, и результат равен 3, любой может решить эту проблему?

ОТВЕТ от Good Luck Благодаря 1/3 ошибка, потому что его целое, просто изменить, чтобы быть 1.0/3.0 и проблема решена

+0

вы не используете int только правильно. потому что (1/3) = 0, когда вы используете int. –

+3

В целочисленной математике, '1/3 = 0'. –

+0

Пожалуйста, включите объявления для переменных a и result - они удваиваются или плавают? Что вы получаете, когда распечатываете как результат, так и результат? – amon

ответ

4

при а = 1/3, a обращается в нуль, потому что это деление двух целых чисел. Если вы хотите получить двойной результат (т. Е. 0.3333), вы должны изменить код на a = 1.0/3.0.

+0

Переменная a является ** double ** –

+0

a является двойной, но '1' и' 3' являются ** целыми числами ** .. !! –

+0

, если у вас будет двойной a = 1.0/3.0, он тоже работает. double и float работают аналогично здесь. –