Понимание символьного преобразования - PullRequest
0 голосов
/ 19 июня 2020

Я не понимаю литье в java, в частности, литье углем. Я не могу предсказать результат этого кода, так как я не понимаю, что "воспроизведет" приведение char. Некоторые объяснения были бы отличными! Спасибо

public class test {
    public static void main(String[] args) {



    int u = 10;

        double v = 22.105;

        byte w = 100;

        char x = 'a';

        float y = 20.5f;

        short z = 50;

        double d_Value = (float) ((char) (u/v) + y);

        Out.print(d_Value);

    }}

1 Ответ

1 голос
/ 19 июня 2020

char - это целочисленный тип данных, поэтому вы потеряете точность из-за двойного результата на u / v, давая вам число 0 (или \0 char). Затем он добавляет 20,5F для окончательного результата: 20.5.

Приведение имеет более высокий приоритет, чем большинство операторов языка, поэтому приведение актуально перед операцией +.

...