本文主要是介绍一定不要用equals比较BigDecimal类型!!!!血泪教训,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一定不要用equals比较BigDecimal类型!!!!血泪教训
1.equals
System.out.println(new BigDecimal(12.00).equals(new BigDecimal(12)));//trueSystem.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);//trueSystem.out.println(new BigDecimal("12.00").compareTo(new BigDecimal("12"))==0?true:false);//true
但是!!!compareTo,无论你传啥!!!他都没问题!!!!
结论:
别投机取巧的用equals了!!!!只要BigDecimal,你就给我用compareTo!!!!
这篇关于一定不要用equals比较BigDecimal类型!!!!血泪教训的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!