在Java中比较BigDecimal和int,哪种方式更好:将BigDecimal转换为int还是将int转换为BigDecimal?
如果你期望的BigDecimal
值非常大(即超出了int
值的范围,该范围为-231到231-1),或者包含小数位,或者只是想保险起见,你应该将int
转换为BigDecimal
以避免溢出/截断错误。
否则,如果性能真的是一个非常重要的问题(这很少见),那么反过来可能更好。
int
转换为 BigDecimal
。由于BigDecimal
扩展了int
的范围,因此您必须将int
转换为BigDecimal
以确保它们可以进行比较。
不将int转换为BigDecimal的一个原因是,这样做会创建一个新对象,因此您实际上是在堆上产生垃圾以执行相等性。此外,原始相等性比实际的BigInteger对象更快。