一个令我迷惑的数据类型的问题?
程序代码如下:
import java.io.*;
public class outfloat
{
public static void main(String[] args)
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
Double d;
String s;
System.out.println("please enter a double data...");
try
{
s=in.readLine();
d=Double.parseDouble(s);
int point=s.indexOf(".");
System.out.println(d+"d的整数部分:"+(long)d);
if(point==-1)
{
System.out.println(d+"小数为:0.0");
}
else
{
System.out.println(d+"小数部分为:"+Double.parseDouble((s.charAt(0)=='-')?"-":"")+"0."+s.substring(point+1,s.length()));
}
}catch(IOException e)
{
System.out.println(e);
}catch(NumberFormatException e)
{System.out.println("format error"+e);}
}
}
编译时出现如下错误提示:
D:\j2sdk\j2sdk1.4.2\bin>javac outfloat.java
outfloat.java:47: incompatible types
found : double
required: java.lang.Double
d=Double.parseDouble(s);
^
outfloat.java:49: inconvertible types
found : java.lang.Double
required: long
System.out.println(d+"d的整数部分:"+(long)d);
请问这有错吗?为什么会出现这样的错误?
^