And*_*nig 5 java precision types
我只是在思考是否可以创建自己的数据类型?因此,如果您需要更高的精度,而其中一种基本类型不支持,您可以"创建"自己满足您的需求.
这可能吗?怎么样?
Boz*_*zho 16
看一眼 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
Run Code Online (Sandbox Code Playgroud)
如果这就是您所要求的,则无法在Java中创建自己的自定义值类型.当然,您可以创建自己的引用类型 - 毕竟,这就是Java中的每个类.
但正如其他人所说,BigDecimal(和BigInteger)应该是更精确的数字类型的起点.