Я просто обдумываю о том, возможно ли создать собственный тип данных? Таким образом, если Вам нужно больше точности, это не поддерживается одним из основных типов, Вы могли просто "создать" свое собственное выполнение Вашего requierements.
Это возможно и как?
Вы не можете создавать ваши собственные типы значений в Java, если вы об этом спрашиваете. Вы, конечно, можете создавать свои собственные ссылочные типы - в конце концов, это то, чем является каждый класс в Java.
Но, как говорили другие, BigDecimal
(и BigInteger
) должны быть вашей отправной точкой для числовых типов с большей точностью.
Похоже, вы выбрали класс BigDecimal
:
http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigDecimal.html
Взгляните на 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
Все всегда возможно.
Однако это не значит, что кто-то уже не сделал это раньше, и гораздо эффективнее, чем вы.
BigInteger и BigDecimal - это то, что вы ищете.