美文网首页程序员
数据库类型为decimal获取问题

数据库类型为decimal获取问题

作者: WXFA | 来源:发表于2018-10-11 17:16 被阅读0次

    在从数据库中获取类型为decimal的值时,在controller那层获取到的值为0E-8,这就很纳闷了,因为这个值是不能与其他的数值进行相加减的,为什么会出现这种情况呢,问题的原因就是:因为数据库中的值为0,而在controller那层获取值时就不能转换,所以必须将0E-8转换为0,我试了两个方法

    第一个方法(方便:只是获取值):将获取到的值直接转换为0,代码为:(new BigDecimal("0E-8")).doubleValue();

    但是这个方法到后面如果需要对比两个bigDecimal的值然后再存入数据库的时候就要转换回来,所以这个对于只是获取值的时候蛮方便的。

    第二个方法(方便:获取值与运算)

    例子:类型为decimal相加,一个为0,一个不为0

              CnyAccountRecharge cnyAccountRecharge=accountRechargeService.findById(id);//第一张表

              CnyAccountInfo cnyAccountInfo =cnyAccountInfoService.findById(infoId);//通过id找到第二张表

               BigDecimal reAmt = cnyAccountRecharge.getRechargeAmt();//获取到对应类型的值,这里的getAmt就是decimal类型的(这里的decimal类型的值不是为 0 的)   

              String amt = String.valueOf(cnyAccountInfo.getAmt());//用一个String装获取到的值,这里的getAmt就是decimal类型的(amt是为0的,所以给它进行做判断)

                if(amt.equals("0E-8")){  //给它加一个判断

                            amt ="0" ; //将0赋予给amt

                }

                cnyAccountInfo.setAmt(new BigDecimal(amt).add(reAmt));//将reAmt与amt相加然后传进数据库中

    相关文章

      网友评论

        本文标题:数据库类型为decimal获取问题

        本文链接:https://www.haomeiwen.com/subject/tfgbaftx.html