数字类型的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()的参数类型可以是浮点型或者是字符串均可。

 public void testTem() {
System.out.println("==================");
String pi = "3.1415926";
Double doubleValue1 = Double.valueOf(pi);
Double doubleParse1 = Double.parseDouble(pi);
System.out.println(String.format("doubleValue1 = %s, doubleParse1 = %s",doubleValue1, doubleParse1)); Double piOfDouble = 3.1415926;
Double doubleValue2 = Double.valueOf(piOfDouble);
Double doubleParse2 = Double.parseDouble(piOfDouble.toString());
System.out.println(String.format("doubleValue2 = %s, doubleParse2 = %s",doubleValue2, doubleParse2)); Float piOfFloat = Float.valueOf(pi);
Double doubleValue3 = Double.valueOf(piOfFloat);
Double doubleParse3 = Double.parseDouble(piOfFloat.toString());
System.out.println(String.format("doubleValue3 = %s, doubleParse3 = %s",doubleValue3, doubleParse3));
System.out.println("==================");
}

控制台输出结果:

 ==================
doubleValue1 = 3.1415926, doubleParse1 = 3.1415926
doubleValue2 = 3.1415926, doubleParse2 = 3.1415926
doubleValue3 = 3.141592502593994, doubleParse3 = 3.1415925
================== 注:String转换结果相同,浮点数转换不一致

区别二:返回类型
Double.parseDouble(java.lang.String)把数字类型的字符串转换成double类型
Double.valueOf()方把数字类型的字符串转换成Double类型
Double.parseDouble()方法的源码:

    public static double parseDouble(String s) throws NumberFormatException {
return FloatingDecimal.readJavaFormatString(s).doubleValue();
}

Double.valueOf()方法的源码:

    public static Double valueOf(String s) throws NumberFormatException {
// new Double()
return new Double(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

Double类parseDouble()和valueOf()方法的区别的更多相关文章

  1. 【转载】C#的DataTable类Clone及Copy方法的区别

    在C#中的Datatable类中,Clone方法和Copy方法都可以用来复制当前的DataTable对象,但DataTable类中的Clone方法和Copy方法还是有区别的,Clone方法只复制结构信 ...

  2. 关于Integer类中parseInt()和valueOf()方法的区别以及int和String类性的转换.以及String类valueOf()方法

    Integer类中的. 关于parseInt()方法的API文档.  返回的是int类型的 关于valueOf()方法的API文档 返回的是Integer类型的. 关于intValue()方法的API ...

  3. js中toString和valueOf方法的区别

    toString 方法 返回对象的字符串表示形式. 语法:objectname.toString([radix]) objectname 必需.要为其搜索字符串表示形式的对象. radix 可选.为将 ...

  4. JavaScript引用类型之Array数组的toString()和valueof()方法的区别

    一.转换方法 1.在JavaScript中几乎所有对象都具有toLocaleString().toString和valueof()方法,因为,所有的对象都继承自Object,而前面所说的方法都是Obj ...

  5. javascript中toString和valueOf方法的区别

    toString():将对象转为字符串 valueOf():获取对象的原始值, 1.针对基本类型的变量:如在string,number,boolean类型的变量上调用这两个方法时,直接返回原始值,即变 ...

  6. 一日一练-JS toString 和valueOf 方法的联系与区别

    子曰:类型转换中toString 和valueOf 的联系与区别分析 首先是看看ES5 的规范是如何进行说明的 在这里有几个基础知识点需要了解一下: [[Class]] [[Class]] 属于Obj ...

  7. 枚举类valueOf方法的疑问

    枚举类中valueOf方法只有一个参数而Enum类中有两个参数,请问Enum实例类中的valueOf方法是从何处继承而来?   答案:jvm进行编译的时候添加的.

  8. toString方法和valueof()方法的区别

    JavaScript引用类型之Array数组的toString()和valueof()方法的区别   一.转换方法 1.在JavaScript中几乎所有对象都具有toLocaleString().to ...

  9. 《JS权威指南学习总结--toString()和valueOf()方法》

    方法要点: 一.toString()方法 1.主要用于Array.Boolean.Date.Error.Function.Number等对象转化为字符串形式.      数组类的toSting()方法 ...

随机推荐

  1. Berkeley DB使用SecondKey给数据排序的实现方法

    Berkeley DB使用SecondKey给数据排序的 实现方法是本文我们主要要介绍的内容,在做项目的时候用到了nosql数据库BDB,借此机会研究了一下它的用法.它的官方示例和文档比较丰富,感觉比 ...

  2. 学习总结——JMeter做WebService接口功能测试

    用JMeter作WebService接口功能测试(可以借助SoapUI来完成) SoapUI里面的操作: Wsdl文件或链接导入或添加到SoapUI打开待测请求:运行请求:取URL  SOAPActi ...

  3. XPath语法 在C#中使用XPath例子与用法

    XPath可以快速定位到Xml中的节点或者属性.XPath语法很简单,但是强大够用,它也是使用xslt的基础知识.示例Xml: <?xml version="1.0" enc ...

  4. 一、Ubuntu 简介

    Ubuntu 是一个Linux 系统 Apt-Get apt-get 命令是一个强大的命令行工具,用于同 Ubuntu 的 Advanced Packaging Tool (APT) 一起执行诸如安装 ...

  5. hibernate中SQL包含冒号

    当前负责的项目使用的是hibernate,而“:”是hibernate的一个占位符,作为预编译使用的, select tmp.pid from (select pid, loginTime, @i : ...

  6. codevs——2894 Txx考试(背包)

    时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解       题目描述 Description Txx是一个成绩很差的人,考试便成了他的噩梦.于是他常在考试时睡觉以 ...

  7. 2016北京集训测试赛(十七)Problem C: 数组

    Solution 线段树好题. 我们考虑用last[i]表示\(i\)这个位置的颜色的上一个出现位置. 考虑以一个位置\(R\)为右端点的区间最远能向左延伸到什么位置: \(L = \max_{i \ ...

  8. Linux(一) 软件安装

    前言:在Linux中安装软件时,我们经常要考虑到这样几个个问题: (1).怎样安装软件;       (2).软件安装在什么地方;       (3).如何卸载删除不要的软件...... 下面,我们就 ...

  9. EasyMvc入门教程-高级控件说明(16)信息框控件

    网页开发的时候,会经常向用户显示一些信息,比如执行结果,注意事项等,下面展示一种最简单的信息提示: 代码如下: @Html.Q().Msg().Text("初始化信息").Auto ...

  10. SQLite创建表并加入数据

    - (void)viewDidLoad { [super viewDidLoad]; //创建表 [self creatTable]; //插入数据 [self insertTable]; } // ...