可能重复:
比较两个通用数字的值
我想比较Number的两个任意实例以找出哪个更大。如您所知,它们可能是整数、长整数或双精度数,也可能是大整数或大小数。那么该怎么办?
- Number 没有实现Comparable。
- 不能使用
doubleValue()
,因为 BigDecimals 或 BigIntegers 可能会损失精度。
我真的需要进行实例测试和铸造吗?必须有一些图书馆可以做到这一点。但是我已经检查了 Apache Commons 和 Guava,但没有运气。
编辑 1:评论指出了这一点:比较两个通用 Numbers 的值。它有一个解决方案,可以使用toString()
. 真的没有更好的方法来做到这一点吗?
编辑 2:我刚刚发布了我自己的版本作为另一个问题的答案。它应该比公认的答案更有效和更健壮。