如何比较BigDecimal
的值是否大于零?比较BigDecimal是否大于零
回答
很简单:
if (value.compareTo(BigDecimal.ZERO) > 0)
的documentation for compareTo
实际上指定它将返回-1,0或1,但更普遍的Comparable<T>.compareTo
方法只能保证小于零,零,或大于零适当的三种情况 - 所以我通常只是坚持这种比较。
使用compareTo()
功能,这是内置到类中。
if (value.signum() > 0)
为什么就不能这么简单
if(bigDecimalObject.intValue() > 0)
如果你的bigDecimalObject持有字符串“abc”的数据,该怎么办? – 2018-02-16 11:59:24
理想情况下,尽管它不是一个语法问题,但我们并没有做新的BigDecimal(“abc”)。它会在执行期间抛出java.lang.NumberFormatException。如果分配了sting,则该对象本身不能正确使用。比较之前,我们从来没有看到BigDecimal是否是字符串。此外,该问题不打算检查null,检查不是字符串或检查其他一些事情:-) – Jajikanth 2018-02-22 22:48:22
BigDecimal obj = new BigDecimal("100");
if(obj.intValue()>0)
System.out.println("yes");
为什么这个答案比已经接受的答案更好? – martijnn2008 2018-02-16 12:25:14
该obj拥有numaric字符串,在接受的答案中,该值未被声明,可能会造成混淆。我的答案会更清晰。 – 2018-02-19 11:43:14
- 1. 没有前导零的Mysql日期比较(大于等于)
- 2. 在Java中,Double.MIN_VALUE是否大于零?
- 3. 比较2号码和打印信息是否大于10
- 4. 在db中比较行并选择值是否大于15%
- 5. 是布尔还是零比较更快?
- 6. BigDecimal乘以零
- 7. 大于比较并交换
- 8. 比较分母== 0.0d以防止被零除是否正确?
- 9. C#能否使用#if比较小于或大于?的值
- 10. 比较一个零对
- 11. qsort比较所有的零
- 12. 只比较非零元素
- 13. 零assignement以串联比较
- 14. 浮点数和零比较
- 15. 比较变量是大于/小于在Matlab
- 16. Python,比较2天,大于3天
- 17. php大于比较不起作用
- 18. BigDecimal()省略前导零
- 19. 较大的对象是否较慢(C++)?
- 20. 是否有比较/比较两个Java包的体面工具?
- 21. Visual Studio 2012 RC比较工具是否仅比较?
- 22. 如何比较大熊猫列和创建新列是或否
- 23. 比较大数字
- 24. SQL大小比较
- 25. NSRange永远是零,比较是不允许的斯威夫特
- 26. 值类型“NSError”的永远是零,比较是不允许
- 27. DataGridView第一列总是比较大
- 28. 于类别比较/可比
- 29. 检查数组中是否有大于零的值
- 30. 检查双值是否大于零的简单方法
警告的附加字被调用。假设'value'的值为零,但是不为零(例如,它的结果为“0.00”而不是“0”)。你可能想要考虑它等于零。 'compareTo()'方法确实可以做到这一点。 **但是'equals()'方法不会。**(另一个证明,如果需要的话,Loki或他的一个头像还活着,并且已经进入软件开发。) – 2011-12-06 11:16:34
虽然我同意这是在Java中的惯用解决方案,我不认为它实际上是可读的。每当我遇到这样的表达时,我发现自己正在写一个测试来让自己放心,我已经找到了正确的方法。也许最近添加的类,如'LocalDate'包含['isBefore'](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#isAfter-java.time .chrono.ChronoLocalDate-)表明Oracle对此感觉相同。这并不理想,但我认为在这些情况下编写一个实用程序“isGreaterThan”方法的可读性略高一些。 – 2016-11-14 11:27:51