Почему Java не вычисляет этот расчет правильно? - PullRequest
0 голосов
/ 28 марта 2020

Я изучал JavaScript, затем Python, а затем C ++, но теперь я начал изучать Java.

Я сделал очень простой код:

public class MyClass
{
    public static void main(String[] args)
    {
        System.out.println(1 + 1 / 2);
    }
}

и это неправильно! Возвращает 1.

Я пробовал по-другому (если есть какая-либо разница):

double x = 1 + 1 / 2;
System.out.println(x);

Без успеха.

Давайте попробуем по-другому!

double x = 1 + Math.pow(2, -1);
System.out.println(x);

И теперь это работает!

Хорошо, я понял это, но почему это на самом деле не сработало? Что я делаю не так?

Заранее спасибо!

1 Ответ

0 голосов
/ 28 марта 2020

Написал оригинальный аскер, поэтому написано в форме "Я". (Я делал ...)

Я делил на два целых числа. Я должен сделать это на двух удваиваниях или числах с плавающей запятой:

System.out.println(1.0 + 1.0 / 2.0);

И так как мы можем сократить удвоения 1,0 -> 1, мы могли бы сократить это:

System.out.println(1.+1./2.);

Спасибо за ваш ответ! (Особенно Наман , njzk2 и FredK в комментариях.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...