比较Java中的BigDecimal和int



在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对象上的等式更快。

最新更新