BigDecimal inAmount=new BigDecimal(String.valueOf(inNumber[i])).multiply(new BigDecimal(String.valueOf(inCome[i])));
BigDecimal sale=new BigDecimal(String.valueOf(inNumber[i])).multiply(new BigDecimal(String.valueOf(sellPrice[i])));System.out.println("**********");
System.out.println("inNumber "+inNumber[i]);
System.out.println("inCome "+inCome[i]);
System.out.println("inAmount "+inAmount);
System.out.println("sellPrice "+sellPrice[i]);
System.out.println("sale "+sale);
System.out.println("s "+new BigDecimal(String.valueOf(sale)).toString());
System.out.println(new BigDecimal(String.valueOf(0E-10))+"****");
其中:inNumber、inCome为String类型,sellPrice为double类型
当inNumber为0,inCome=34的时候,结果为:(服务器包错,sale为科学记数法表示,如何取消科学记数法)
inNumber 0
inCome 34.0
inAmount 0.0
sellPrice 8172.1649484537
sale 0E-10
s 0E-10
0.0****
我现在要用2个方法来解决,
一:用一个if判断,当sale的值是OE-10的时候我让sale为0 
二:直接转换0E-10,不要科学记数法表示
可惜,昨天晚上搞到4点都没有弄出来。请大家帮帮忙啊
当inNumber为1,inCome=0的时候,结果为:(服务器正常)
inNumber 1
inCome 0
inAmount 0
sellPrice 8172.1649484537
sale 8172.1649484537
s 8172.1649484537
因为inNumber在后面的计算中也用到了,当inCome为0的时候却没事还一个问题:
BigDecimal sellPrice=rs.getBigDecimal("sellPrice");
若库中sellPrice的值为空,应该如何判断???

解决方案 »

  1.   

    你们没看到sale输出的结果是: 0E-10,这个值是无法存到库中的,在库中sale类型是decimal。我现在就是要把0E-10转换成不用科学记数法表示
      

  2.   

    一:用一个if判断,当sale的值是OE-10的时候我让sale为0 
    二:直接转换0E-10,不要科学记数法表示
    这2个方法我都不知道该如何实现,求大家帮帮忙,我确实弄的很累
      

  3.   

    sale为BigDecimal类型,当它的值为0E-10的时候,如何把0E-10转换成不用科学记数法表示
      

  4.   

    你能不能转个弯?
    这样:
    System.out.println("sale "+sale.doubleValue());
    先把这个sale转成double?