我只是在思考是否可以创建自己的数据类型? 因此,如果您需要更高的精度,这不受基本类型之一的支持,您可以“创建”自己的满足要求。Java:做自己的数据类型? (例如long long double?)
这是可能的和如何?
我只是在思考是否可以创建自己的数据类型? 因此,如果您需要更高的精度,这不受基本类型之一的支持,您可以“创建”自己的满足要求。Java:做自己的数据类型? (例如long long double?)
这是可能的和如何?
不可变的,任意精度的有符号十进制数
并回答你的问题 - 是的,你可以箱子的数据类型,但它们不能是基本类型(如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
听起来你可能是BigDecimal
课后:
http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigDecimal.html
你不能用Java创建自己的自定义的值类型,如果这就是你在问什么。当然,您可以创建自己的参考类型 - 毕竟,这就是Java中的每个类。
但正如其他人所说,BigDecimal
(和BigInteger
)应该是您的数值类型的更准确的起点。
一切都是可能的。
然而,这并不意味着有人还没有做过,而且比以往任何时候都更有效。
BigInteger和BigDecimal是你在找什么。
我会建议你阅读关于面向对象编程。您可以使用类来定义您自己的数据类型。 – Jonathan 2010-03-10 13:57:29
用户定义的java类也是一种类型!只需添加一些long类型的成员,以保存整数和小数部分。添加方法添加/减去,然后你去! – Elister 2010-03-10 13:58:16
@Andreas Hornig随时接受回答你的问题的答案。 – Bozho 2010-03-15 15:10:48