java parsedouble valueof_Double类parseDouble()和valueOf()方法的区别

数字类型的String字符串转换为浮点数通常采用parseDouble()和valueOf()方法,

两者主要是存在以下两点区别。

区别一:参数区别

Double.parseDouble(java.lang.String)的参数只能是String,如果参数改为double类型提示“The method parseDouble(String) in the type Double is not applicable for the arguments (double)”错误。

Double.valueOf()的参数类型可以是浮点型或者是字符串均可。

1 public voidtestTem() {2 System.out.println("==================");3 String pi = "3.1415926";4 Double doubleValue1 =Double.valueOf(pi);5 Double doubleParse1 =Double.parseDouble(pi);6 System.out.println(String.format("doubleValue1 = %s, doubleParse1 = %s",doubleValue1, doubleParse1));7

8 Double piOfDouble = 3.1415926;9 Double doubleValue2 =Double.valueOf(piOfDouble);10 Double doubleParse2 =Double.parseDouble(piOfDouble.toString());11 System.out.println(String.format("doubleValue2 = %s, doubleParse2 = %s",doubleValue2, doubleParse2));12

13 Float piOfFloat =Float.valueOf(pi);14 Double doubleValue3 =Double.valueOf(piOfFloat);15 Double doubleParse3 =Double.parseDouble(piOfFloat.toString());16 System.out.println(String.format("doubleValue3 = %s, doubleParse3 = %s",doubleValue3, doubleParse3));17 System.out.println("==================");18 }

控制台输出结果:

1 ==================

2 doubleValue1 = 3.1415926, doubleParse1 = 3.1415926

3 doubleValue2 = 3.1415926, doubleParse2 = 3.1415926

4 doubleValue3 = 3.141592502593994, doubleParse3 = 3.1415925

5 ==================

注:String转换结果相同,浮点数转换不一致

区别二:返回类型

Double.parseDouble(java.lang.String)把数字类型的字符串转换成double类型

Double.valueOf()方把数字类型的字符串转换成Double类型

Double.parseDouble()方法的源码:

public static double parseDouble(String s) throwsNumberFormatException {returnFloatingDecimal.readJavaFormatString(s).doubleValue();

}

Double.valueOf()方法的源码:

public static Double valueOf(String s) throwsNumberFormatException {//new Double()

return newDouble(FloatingDecimal.readJavaFormatString(s).doubleValue());

}

通过格式化小数点位数两者结果相同,可以看出除参数和返回类型外两者区别不大。

DecimalFormat df = new DecimalFormat("0.00");

System.out.println(df.format(Double.parseDouble(pi)));

System.out.println(df.format(Double.valueOf(pi)));

控制台输出结果:

3.14

3.14

参考:https://blog.csdn.net/astrologer_/article/details/78115171

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值