java中,double 转换为string

doublenum=1.23;Stringsnum1=1.23+"";Stringsnum2=Double.toString(num);1、snum1和snum2有何不同... double num=1.23; String snum1=1.23+"";String snum2=Double.toString(num);
1、snum1和snum2有何不同?
2、如果现在以string类型显示1.23 。是否使用snum1更好?因为snum2会有精确度的问题。
我又看了下。Double.toString(num)是没有精度问题的。但是不知道为什么,用另一个方面传值的时候精度就发生了变化。郁闷,难道double类型的精度会随意变?
展开
 我来答
s3938931
推荐于2017-09-04 · TA获得超过871个赞
知道小有建树答主
回答量:577
采纳率:100%
帮助的人:168万
展开全部
1.snum1和snum2是相同的
2.你可能理解错了
我做了测试 他们确实是相等的
如果解释的话 snum1= 1.23+"";
首先系统会自动把1.23当成是double 然后执行Double.toString(snum1);这就和snum2一样的嘛!
你可以测试一下
public static void main(String[] args){
double num=1.23; String snum1=1.23+"";
String snum2=Double.toString(num);
if(snum1.equals(snum2)){
System.out.println("fsafsaf");
}else{
System.out.println(snum1);
System.out.println(snum2);
}

}

上面的大神 我对你真无语,你看到过比较String用==号得嘛,看样子你得去看看==和equal的区别了

不是精度有没有问题,得看你传值得类型。
潮福开3914
2011-05-13 · TA获得超过482个赞
知道小有建树答主
回答量:301
采纳率:37%
帮助的人:92.2万
展开全部
1、snum1指向的是字符串池中的“1.23” snum2指向的是堆中的"1.23"
String snum3 = "1.23";
System.out.println(snum1==snum2);//false
System.out.println(snum1==snum3);//true
System.out.println(snum3==snum2);//false
2、smun2 更好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zcm475800568
2011-05-13 · TA获得超过114个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:83.4万
展开全部
double b = 10;
String s = new String(Double.toString(b));
System.out.println(s.getClass().getSimpleName());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
111111xiaoliu
2011-05-13
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
sum1 的效率更高 节省时间

第二个问题不清楚
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式