在Java中比较BigDecimal和int的最佳方法是:将BigDecimal转换为int或将int转换为BigDecimal?
答案 0 :(得分:10)
如果您希望BigDecimal
值非常大(即超出int
值的范围,即-2 31 至2 31 -1)和/或包含十进制数字,或者只是想安全播放,您应该将int
转换为BigDecimal
以避免溢出/截断错误。
否则,如果性能是一个非常大的问题(这种情况很少见),那么可能会更好地反过来。
答案 1 :(得分:2)
您想将int
转换为BigDecimal
。
这是因为您无法始终将BigDecimal转换为int;您将丢失小数点后的任何信息,并且BigDecimal的值可能超出int的范围。
答案 2 :(得分:1)
当BigDecimal
扩展int
的范围时,您必须将int
转换为BigDecimal
,以确保无论如何都可以将它们进行比较。
答案 3 :(得分:0)
不将int转换为BigDecimal的一个原因是你要创建一个新对象,因此你真的在堆上扔垃圾来执行相等。 此外,原始相等性也会比实际BigInteger对象上的更快。