[java]类型转换问题
但是我还是不太明白为什么我不能调用toString方法把double转换成String类型。我没有改变s的值,但是我只是想打印s值的一部分,所以我要把double转换成字...
但是我还是不太明白为什么我不能调用toString方法把double转换成String 类型。 我没有改变s的值,但是我只是想打印s值的一部分,所以我要把double转换成字符串
import java.io.*;
public class DataTrunc{
public static void main(String[] args)throws NumberFormatException,IOException{
String s;
double d;
int i;
System.out.println("请输入一个浮点数:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
s = br.readLine();
i = s.indexOf('.');
d = Double.parseDouble(s);
System.out.println(d+"整数部分"+(long)d);
s = d.toString();
if(i == -1){
System.out.println(d+"的小数部分为:0.0");
}
else {
System.out.println( s + "的小数部分为:0." + s.substring(i+1,s.length()) );
}
}
} 展开
import java.io.*;
public class DataTrunc{
public static void main(String[] args)throws NumberFormatException,IOException{
String s;
double d;
int i;
System.out.println("请输入一个浮点数:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
s = br.readLine();
i = s.indexOf('.');
d = Double.parseDouble(s);
System.out.println(d+"整数部分"+(long)d);
s = d.toString();
if(i == -1){
System.out.println(d+"的小数部分为:0.0");
}
else {
System.out.println( s + "的小数部分为:0." + s.substring(i+1,s.length()) );
}
}
} 展开
6个回答
展开全部
java的基本数据类型 比如int double等是没有 toString方法的
而且String 不是基本数据类型 不能和八大基本数据类型进行相互转换
比如
String s=“123”;
int s1=s;//这样的转换是错误的
反之
double s2=12.435;
s=s2;//这样也是错误的
而且String 不是基本数据类型 不能和八大基本数据类型进行相互转换
比如
String s=“123”;
int s1=s;//这样的转换是错误的
反之
double s2=12.435;
s=s2;//这样也是错误的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我都给你发了那么多私信了你还不明白~我给你举个例子讲解吧.比如说基本数据类型char跟引用数据类型String.假如说现在你要用一个卡车去搬运一些水,你该怎么搬运呢?我能直接把无形的水直接放到卡车上么?其中这个水是客观存在的,也就相当于基本数据类型.而这个卡车相当于引用数据类型.我们需要把基本数据类型放到引用数据类型里是不是就像水直接放到卡车里一样不可以实现?那么怎样才行呢?实现的办法就是我们先把水装在桶里,然后把一桶一桶的水装进卡车.这一个一个的桶就把基本数据类型的水装进去了,就是我们说的包装类.此时基本数据类型的包装类也相当于Object对象了,因此可以直接操作了.你的double类型的数据就是水,没法用toString方法装进String类型的卡车.但是你使用Double.toString(d)就相当于把double类型的数据先装进桶里,然后再把桶放进卡车.明白了么?我给你讲了N遍了都..
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类Double有toString方法,但是double没有。
如果你想输出double d =5.0;的值,直接用System.out.println(d);就可以了
如果你想输出double d =5.0;的值,直接用System.out.println(d);就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先把代码写出来,编译的时候看看错误提示,再看看API文档,是不是哪里理解错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以的,为什么说不可以呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询