这是因为数据库的double精度和java的double精度不一致造成的.

解决方案 »

  1.   

    beyondii(十万个为什么) 说得很明了
      

  2.   

    //格式化输出数字格式
    DecimalFormat df = new DecimalFormat("###.00");out.println(df.format(a))a是double型的变量绝对好用!
      

  3.   

    不好意思下午有事,没看到各位的回贴。我数据库用的是SQL 里面没有double类型的变量。我用的是float类型的变量。
    但是在编写JSP页面时,用float类型,提示错误。让用double类型的。 请高手帮忙想个解决办法。
      

  4.   

    但是在编写JSP页面时,用float类型,提示错误。让用double类型的。 
    怎么个不让法?????
    float abc = 123.3f;
    这样做是不是你从数据库里面取出来了
    忘了转成float了
      

  5.   

    我在JSP页面这样做的:float jine=0.49 * yliang+0.5;错误提示:Note: sun.tools.javac.Main has been deprecated.
    D:\resin-2.1.6\doc\program\tiand\min\modj1.jsp:18: Incompatible type for
    declaration. Explicit cast needed to convert double to float.
    float jine=0.49 * yliang+0.5;
          ^
    1 error, 1 warning XKP:你帮我分析一下。谢谢了。。
      

  6.   

    float jine=0.49 * yliang+0.5;
    这个是因为yliang是一个double型长度是32位,而jine是float型长充的16位,这样当然不能这样写。如果由小转到大还可以,从大到小就不行了!
      

  7.   

    正如楼上所说的如果由小转到大还可以,从大到小就不行了!的确是如此不过你可以试试看把你的数值用double运算之后,
    double jine=0.49 * yliang+0.5;
    float jineF = (new Double( jine ) ).floatValue();这样试试看,如果你的数值不太大的可能还好······不太推荐这样的处理方式就是了
      

  8.   

    没有啊。yliang是int 类型的
      

  9.   

    float jine=0.49 * yliang+0.5;没有啊。yliang是int 类型的如果说yliang是int的话那么你这样吧float jine=0.49f * yliang+0.5f;试试看
      

  10.   

    哈哈。 XKP,好了。你都帮我这么多次了。真的谢谢你拉。hoho!