Взгляните на BigDecimal
Неизменные десятичные числа со знаками произвольной точности
И чтобы ответить на ваш вопрос - да,Вы можете создать типы данных, но они не могут быть примитивными типами (например, int
, double
и т. д.).Это должны быть классы, как в случае с BigDecimal
(и BigInteger
)
И еще один совет по использованию классов Big*
- как написано, они неизменны.Это означает, что вызов add(..)
не меняет объект - он возвращает новый объект, который отражает изменение.Т.е.
BigDecimal dec = BigDecimal.ZERO;
dec.add(new BigDecimal(5)); // nothing happens
dec = dec.add(new BigDecimal(5)); // this works