日期:2014-05-20  浏览次数:20695 次

//关于double 类型 转换成 float 类型出错,等待解决.
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   之后输出,但是上面的程序,不能通过
编译,请各位指点,给出正确答案.
如果您有时间的话,请您告诉我,上面的程序到底错在哪里?


*************************************************************************/

------解决方案--------------------
因为你参数类型不对,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);
}
------解决方案--------------------
static float temp=Float.valueOf( " "+num).floatValue();
你试试可以不?
------解决方案--------------------
public static void main(String args[])
{
System.out.println(aa.temp);
}
放到public class aa{}外面
------解决方案--------------------

static float temp=Float.valueOf(String.valueOf(num)).floatValue();

不赞成:直接temp=(float)num;就可以了,因为如果num表示的数已经超过了float所表示的范围,两种方法都会取不到值。

但这一种方法一目了然,很直观。
------解决方案--------------------
统一楼上的,可以直接转换类型的!
数值之间的转换都可以用上面的方法,简单啊!