比如说三个值,6和10还有0:
BigDecimal ten = BigDecimal.valueOf(10);
BigDecimal zero = BigDecimal.ZERO;
比较结果:
6小于10结果是-1是对的
然后问题来了,6怎么比0还小了呢?
比如说三个值,6和10还有0:
BigDecimal ten = BigDecimal.valueOf(10);
BigDecimal zero = BigDecimal.ZERO;
比较结果:
6小于10结果是-1是对的
然后问题来了,6怎么比0还小了呢?
java.math.BigInteger#compareTo的文档注释
@return -1, 0 or 1 as this BigInteger is numerically less than, equal to, or greater than {@code val}.
返回-1的时候是当前值小于比较值,你的两次比较的结论应该是变量ten小于比较参数以及变量zero小于比较参数。
如果比较参数一直是6的话,有问题的应该是第一次比较。
请检查第一次比较的时候比较参数的值,JDK的代码不至于低级到一个比较器都写错的地步
public static void main(String[] args) {
System.out.println(BigInteger.TEN.compareTo(BigInteger.valueOf(6)));//1
System.out.println(BigInteger.ZERO.compareTo(BigInteger.valueOf(6)));//-1
}
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
因为你写错了…