Тип, возвращаемый троичным оператором, может быть повышен, так что два потенциальных возвращаемых типа совпадают.Это называется двоичным числовым продвижением, а ваша переменная повышается с длинного на двойное перед преобразованием в строку.
Если у вас было это, когда оба потенциальных типа возвращаемых значений - int или long:
double d = 10.1;
String rounded = (false ? 0 : Math.round(d)) + "";
Что происходит (не риторический вопрос, поскольку я не рядом с компилятором Java)?