一定不要用equals比较BigDecimal类型!!!!血泪教训
1.equals
System.out.println(new BigDecimal(12.00).equals(new BigDecimal(12)));//true
System.out.println(new BigDecimal("12.00").equals(new BigDecimal("12")));//false
用equals比较,只要传的是数字,其实是没有问题的。但是传字符串,就不可以了。
2.compareTo
System.out.println(new BigDecimal(12.00).compareTo(new BigDecimal(12))==0?true:false);//true
System.out.println(new BigDecimal("12.00").compareTo(new BigDecimal("12"))==0?true:false);//true
但是!!!compareTo,无论你传啥!!!他都没问题!!!!
结论:
别投机取巧的用equals了!!!!只要BigDecimal,你就给我用compareTo!!!!
本文通过实例对比BigDecimal类型的equals和compareTo方法,揭示equals在字符串输入时的缺陷,强调在BigDecimal比较中应优先使用compareTo。
1万+

被折叠的 条评论
为什么被折叠?



