У меня есть общий тип T
. Используя Марк оператор
класс , я могу выполнять вычисления над ним.
Можно ли простыми вычислениями определить, является ли тип интегральным или нецелым типом?
Возможно, есть лучшее решение? Я бы предпочел поддерживать любой возможный тип, поэтому я хотел бы предотвратить жесткое кодирование того, какие типы являются интегральными / нецелочисленными.
Справочная информация
Ситуация, в которой я нахожусь, заключается в том, что я хочу преобразовать double
в T
, но округлить до ближайшего значения T
в значение двойное
.
int a = (int) 2.6
приводит к 2
, в то время как я хочу, чтобы он привел к 3
, без знания типа (в данном случае int
). Это также может быть double
, и в этом случае я хочу, чтобы результат был 2.6
.