如是,请高手帮忙解决.
score = Double.parseDouble(additionalScore);
ti.setAdditionalScore(BigDecimal.valueOf(score));
一点保存后报将 numeric 转换为数据类型 numeric 时发生算术溢出错误。

解决方案 »

  1.   

    这句话什么意思?用myeclipes 7.0或7.5版本的时候,在数据库中的int类型的数据在被hibernate生成对应的类的时候,会自动转换成bigdecimal型的数据。bigdecimal类型是精度比double还要高的商业算法数据。数据类型转换应该和double与int类型转换相似吧
      

  2.   

    我数据库就是bigdecimal这个类型呀!我用bigdecimal.valueOf(Double)方法和new BigDecimal(double.toString(Double))方法,这两种方法都报numeric 转换为数据类型 numeric 时发生算术溢出错误这个错误.
      

  3.   

    你是要把得到的double数据转换成bigdecimal类型的数据吗?是这个意思吗
      

  4.   

    你的数据是否正常
    score = Double.parseDouble(additionalScore); 
    ti.setAdditionalScore(BigDecimal.valueOf(score));
    这两句是否是第一句转换错误
    或者new BigDecimal(score)试试
      

  5.   

    这些方法我都试过了,转换类型时没有错误!但是我往数据库中存的时候就报错了.
    比如:
    Double score = 10; 
    ti.setAdditionalScore(BigDecimal.valueOf(score));
    这样在往库中存的时候就报错了.
      

  6.   

    数据库中字段的类型是DECIMAL(3,3)
      

  7.   

    ti.setAdditionalScore(BigDecimal.valueOf(score)); BigDecimal.valueOf();这个方法中好像接收的是String类型的数据吧
      

  8.   

    结贴了,我自己解决了.这数据库设计的问题.
    DECIMAL(3,3)括号中的第一个3代表是这个字段总共有多少个数字,包括整数和小位,后面的那个3代表是小数点后保留几位.所以我存的时候总报错.
      

  9.   

    DECIMAL(3,3) 楼主强淫 你这么定义不是只能写入小数 不能写一个整数吗 难怪 要报错了 你应该吧
    DECIMAL(6,3)或者(3,0)么