public class aa
{
static double num=993.01d;
static float temp=Float.valueOf(num).floatValue(); public static void main(String args[])
{
System.out.println(aa.temp);
}
}/*************************************************************************
您好,我是想把double num 转换成 float temp 之后输出,但是上面的程序,不能通过
编译,请各位指点,给出正确答案.
如果您有时间的话,请您告诉我,上面的程序到底错在哪里?
*************************************************************************/

解决方案 »

  1.   

    因为你参数类型不对,Float.valueOf()中间的参数应该是String类型的
    改成这样(如果你不嫌麻烦):
    static double num=993.01d;
    static float temp=Float.valueOf(String.valueOf(num)).floatValue(); public static void main(String args[])
    {
    System.out.println(aa.temp);
    }
      

  2.   

    static float temp=Float.valueOf(""+num).floatValue();
    你试试可以不?
      

  3.   

    public static void main(String args[])
    {
    System.out.println(aa.temp);
    }
    放到public class aa{}外面
      

  4.   


    static float temp=Float.valueOf(String.valueOf(num)).floatValue();不赞成:直接temp=(float)num;就可以了,因为如果num表示的数已经超过了float所表示的范围,两种方法都会取不到值。但这一种方法一目了然,很直观。