zoukankan      html  css  js  c++  java
  • BigDecimal空指针异常——个人应用

    背景:

      将数据库统计的数据,封装成了两个BigDecimal,此时要将两个BigDecimal进行运算。其中有一个没有数据的话,会报null(不管null值在前在后)

    先上解决:

      我把数据库的数据进行了个判空,嘻嘻嘻,COALESCE(值,0),如果是没有数据的就返回0

      尝试(天真的我以为他会自己把null 给我转成0(如果这样的话为什么还报空指针!),所以就在找判0的方法):

        使用 b.compareTo(BigDecimal.ZERO)==0 来判空(b为接收到的返回值)   X报错

        那反过来BigDecimal.ZERO.compareTo(b)==0   X报错  天真

    课外:

      不过百度的过程中了解了

      判断BigDecimal是否等于0的方法

        用equals比较的话,就是转成了字符串来比较,会出现 Bigdecimal b = new Bigdecimal("0") 和 Bigdecimal c = new Bigdecimal("0.0")==>返回就是false

        推荐使用:b.compareTo(BigDecimal.ZERO)==0 

      BigDecimal 的运算

        add(BigDecimal)        BigDecimal对象中的值相加,然后返回这个对象。 
        subtract(BigDecimal) BigDecimal对象中的值相减,然后返回这个对象。 
        multiply(BigDecimal)  BigDecimal对象中的值相乘,然后返回这个对象。 
        divide(BigDecimal)     BigDecimal对象中的值相除,然后返回这个对象。 
        toString()                将BigDecimal对象的数值转换成字符串。 
        doubleValue()          将BigDecimal对象中的值以双精度数返回。 
        floatValue()             将BigDecimal对象中的值以单精度数返回。 
        longValue()             将BigDecimal对象中的值以长整数返回。 
        intValue()               将BigDecimal对象中的值以整数返回。

  • 相关阅读:
    python——(os, shutil)
    python-(subprocess, commands)
    PHP设计模式二:单例模式
    PHP设计模式一:工厂方法设计模式
    PHP垃圾回收机制
    PHP异常处理机制
    超文本传送协议HTTP
    IP地址
    Linux系统网络基本配置
    Linux系统LVM基本使用
  • 原文地址:https://www.cnblogs.com/sun7897/p/10103352.html
Copyright © 2011-2022 走看看