Почему компилятор решает, что число 2.3 является двойным, а не десятичным?C#

Место общения программистов C#
Anonymous
Почему компилятор решает, что число 2.3 является двойным, а не десятичным?

Сообщение Anonymous »

Почему компилятор решает, что версия 2.3 является двойной, поэтому этот код не компилируется:

Код: Выделить всё

decimal x;
x = 2.3; // Compilation error - can not convert double to decimal.
x = (decimal) 2.3 // O.k.
Почему компилятор не думает так:

Он хочет получить десятичное число, он дает мне значение, которое может быть десятичным, Итак, это десятичное число!

И почему это не вызывает ошибку компиляции:

Код: Выделить всё

short x;
x = 23; // O.K.
Кто сказал, что 23 — это не целое число?

Подробнее здесь: https://stackoverflow.com/questions/841 ... ot-decimal

Вернуться в «C#»