现在有一个String ,String str = "2584aba31474e19074c1231818221609";想把他变成10进制,放到数据库中去,数据库的字段是 NUMBER(38),求教,怎么在java种转过来提交到数据库。
Connection conn= null;
ConnPool pool = new ConnPool();
PreparedStatement pst=null;
ResultSet rs=null;conn=pool.createConnection();
……

解决方案 »

  1.   

    十六进制转成十进制    
    Integer.valueOf("FFFF",16).toString()
      

  2.   

    哥哥,你试过了吗?
    String str = "2584aba31474e19074c1231818221609"; 
    你把它转成int试试。
      

  3.   

    哥哥,你试过了吗?
    String str = "2584aba31474e19074c1231818221609"; 
    你把它转成int试试。
      

  4.   


    没环境
    是不是转为10进制后数据值太大了?那就用long类型.
      

  5.   

    long 也不行,太长了……
    String str = "2584aba31474e19074c1231818221609"; 
    long l = Long.parseLong(str, 16);
    直接就报错了……错误为:
    java.lang.NumberFormatException: For input string: "2584aba31474e19074c1231818221609"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Long.parseLong(Long.java:406)小弟在线等啊………………
      

  6.   

    其实你应该到JAVA版问.
    如果没有现成的java method,可以写个循环啊,遍历整个串,按进制的转换规则计算出来.
      

  7.   

    兄弟帮忙,能给个代码吗?计算规则出来后用什么类型存储啊。用double会损失精度……
      

  8.   

    select to_number('2584aba31474e19074c1231818221609', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') FROM DUAL;