System.out.print (3 + 2 + 1-5 + 4% 2-1/4 + 6)(начальный) Java-математическая последовательность
Выход: 7
Как последовательность выполнения математические операторы работают, делает ли java алгебраическим PEMDAS или чем-то еще.
System.out.print (3 + 2 + 1-5 + 4% 2-1/4 + 6)(начальный) Java-математическая последовательность
Выход: 7
Как последовательность выполнения математические операторы работают, делает ли java алгебраическим PEMDAS или чем-то еще.
Да, Java следует стандартным арифметическим порядкам операций.
Однако вы можете ожидать другого ответа, чем того, что у вас есть. Это связано с тем, что значение 1/4
оценивается с использованием целых чисел, так как и 1
, и 4
являются целыми числами. Результат 1/4
в целочисленной арифметике равен 0.
Чтобы попросить компилятор оценить это с помощью плавающей запятой, используйте что-то вроде 1.0/4.0
. После этого вы должны получить результат с плавающей точкой 6.75 (что, вероятно, вы ожидали).
Исправить. Вот как он будет выполнен (3 + 2 + 1-5 + (4% 2) - (1/4) +6). Как объяснено, 1/4 будет оценено до 0, так как по крайней мере один из них должен быть числом с плавающей запятой. Кроме того, если вы сохраняете значение в переменной, переменная должна также быть плавающей или двойной, иначе вы потеряете что-нибудь после десятичной точки. Что-то вроде: (float x = (3 + 2 + 1-5 + (4% 2) - (1.0f/4) +6)) – Anshuman
Java будет следовать порядку старшинства (порядок действий)
() первый
*, /,% второй
+, - третий
То есть все, что вы» Мне нужна эта проблема, но есть еще Here
Да, Java будет следовать одному и тому же порядку операций. Единственное изменение - это%, которые следуют тому же порядку, что и умножение и деление.
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html Для изучения приоритета оператора –