在Java中,比较BigDecimal和int的最佳方法是哪一种:将BigDecimal转换为int还是将int转换为BigDecimal?
如果您希望BigDecimal
值非常大(即在int
值的范围之外,即-231到232-1)和/或包含十进制数字,或者只是为了安全起见,您应该将int
转换为BigDecimal
,以避免溢出/截断错误。
否则,如果性能真的是一个大问题(这是罕见的),那么可能会更好。
您想要将int
转换为BigDecimal
。
这是因为您并不总是能够将BigDecimal转换为int;您将丢失小数点后的任何信息,并且BigDecimal的值可能在int的范围之外。
由于BigDecimal
扩展了int
的范围,您必须将int
转换为BigDecimal
,以确保它们可以进行比较。
不将int转换为BigDecimal的一个原因是,您将创建一个新对象,因此您实际上是在向堆中扔垃圾以执行相等操作。此外,基元等式也会比实际BigInteger对象上的等式更快。