...
double n=0.6;
BigDecimal m=BigDecimal.valueOf(n); //Translates a into a BigDecimal
...上面语句在eclipse报错:类型 BigDecimal 中的方法 valueOf(long)对于自变量(double)不适用
而我在API中查看到valueOf(double val)这个方法,很明显valueOf()方法中的参数可以是double类型的.
API对valueOf(double val)的说明如下:
Translates a double into a BigDecimal, using the double's canonical string representation provided by the Double.toString(double) method.是不是其中要用到Double.toString(double)??
如何用?怎样才解决我上面的问题?
希望能得到你们的帮助,谢谢~~~

解决方案 »

  1.   

    ...
    double n=0.6;
    BigDecimal m=BigDecimal.valueOf(n); //Translates n into a BigDecimal
    ...
    不好意思,注释写错变量了,现在修改过来..
      

  2.   

    楼主,BigDecimal的valueOf()参数是long型的,你应该通过构造函数
    double n=0.6;
    BigDecimal m=new BigDecimal(n); //Translates n into a BigDecimal
      

  3.   

    主要是你没有导入math包
    import java.math.*;
    public class Test6{
      public static void main(String args[]){
          double n=0.6;
          BigDecimal m=new BigDecimal(n); 
          System.out.println(m);
      }
    }
    这样就没有错了
      

  4.   

    你在什么版本API中查看到valueOf(double val)这个方法,1.4只有valueOf(long val),没有你说的那个方法。
      

  5.   

    myhotsun(科科)
    你在什么版本API中查看到valueOf(double val)这个方法,1.4只有valueOf(long val),没有你说的那个方法。我在SUN官方网站下载的,上面的内容都是直接copy过来的.
    里面确实有valueOf(double val)这个方法,你可以下载来看看
      

  6.   

    晕,我的API也只能看到valueOf(long)方法,可能你下载的API文档是最新的,但是你机器上的JDK又是老的版本.
      

  7.   

    public static BigDecimal valueOf(double val)
    这个方法是JDK1.5开始才有的。
    搂主的问题,应该是出在所用的ECLIPSE里面用的JDK版本比较旧的原因。
    换成最新的JDK1.5以上的,就可以了。可能的话,那你的ECLIPSE也换成最新的。用JDK1.5版本的JDK,以前的ECLIPSE可能会有一点问题。