В JLS в 5.6.2.Двоичное числовое продвижение:
Когда оператор применяет двоичное числовое продвижение к паре операндов, каждый из которых должен обозначать значение, которое может быть преобразовано в числовой тип, применяются следующие правила:
Если какой-либо операнд имеет ссылочный тип, он подвергается преобразованию без распаковки (§5.1.8).
Применяется расширяющее примитивное преобразование (§5.1.2) для преобразования одного или обоих операндовкак указано в следующих правилах:
Если один из операндов имеет тип double, другой преобразуется в двойной.
В противном случае, , если один из операндов имеет тип float, другойпреобразуется в число с плавающей точкой.
В противном случае, если один из операндов имеет тип long, другой преобразуется в long.
В противном случае оба операнда преобразуются в тип int.
Это смущает меня, потому что оба http://www.mathcs.emory.edu/~cheung/Courses/170/Syllabus/04/mixed.html и https://alvinalexander.com/java/java-int-double-float-mixed-type-division-arithmetic-rules
утверждают, что
Все значения с плавающей запятой (с плавающей и двойной) в арифметической операции(+, -,*, /) преобразуются в двойной тип перед выполнением арифметической операции.
Насколько я понимаю, согласно JLS, добавление 1 числа с плавающей точкой и 1 целого числа приведет к плавающему числу.Однако, согласно другим источникам, добавление 1 числа с плавающей запятой и 1 целого числа приведет к двойному значению?