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()的参数类型可以是浮点型或者是字符串均可。
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()方法的区别的更多相关文章
- 【转载】C#的DataTable类Clone及Copy方法的区别
在C#中的Datatable类中,Clone方法和Copy方法都可以用来复制当前的DataTable对象,但DataTable类中的Clone方法和Copy方法还是有区别的,Clone方法只复制结构信 ...
- 关于Integer类中parseInt()和valueOf()方法的区别以及int和String类性的转换.以及String类valueOf()方法
Integer类中的. 关于parseInt()方法的API文档. 返回的是int类型的 关于valueOf()方法的API文档 返回的是Integer类型的. 关于intValue()方法的API ...
- js中toString和valueOf方法的区别
toString 方法 返回对象的字符串表示形式. 语法:objectname.toString([radix]) objectname 必需.要为其搜索字符串表示形式的对象. radix 可选.为将 ...
- JavaScript引用类型之Array数组的toString()和valueof()方法的区别
一.转换方法 1.在JavaScript中几乎所有对象都具有toLocaleString().toString和valueof()方法,因为,所有的对象都继承自Object,而前面所说的方法都是Obj ...
- javascript中toString和valueOf方法的区别
toString():将对象转为字符串 valueOf():获取对象的原始值, 1.针对基本类型的变量:如在string,number,boolean类型的变量上调用这两个方法时,直接返回原始值,即变 ...
- 一日一练-JS toString 和valueOf 方法的联系与区别
子曰:类型转换中toString 和valueOf 的联系与区别分析 首先是看看ES5 的规范是如何进行说明的 在这里有几个基础知识点需要了解一下: [[Class]] [[Class]] 属于Obj ...
- 枚举类valueOf方法的疑问
枚举类中valueOf方法只有一个参数而Enum类中有两个参数,请问Enum实例类中的valueOf方法是从何处继承而来? 答案:jvm进行编译的时候添加的.
- toString方法和valueof()方法的区别
JavaScript引用类型之Array数组的toString()和valueof()方法的区别 一.转换方法 1.在JavaScript中几乎所有对象都具有toLocaleString().to ...
- 《JS权威指南学习总结--toString()和valueOf()方法》
方法要点: 一.toString()方法 1.主要用于Array.Boolean.Date.Error.Function.Number等对象转化为字符串形式. 数组类的toSting()方法 ...
随机推荐
- shell特殊符号用法大全
# 注释符号(Hashmark[Comments]) 1.在shell文件的行首,作为shebang标记,#!/bin/bash; 2. 其他地方作为注释使用,在一行中,#后面的内容并不会被执行, ...
- 修复无法启动的mariadb
一直在用的数据库,今天无论如何启动不了了,最后在archlinux wiki上查到了解决方法: mysql_install_db --user=mysql --basedir=/usr --datad ...
- 例说linux内核与应用数据通信系列【转】
转自:http://blog.csdn.net/shallnet/article/details/47865169 版权声明:本文为博主原创文章,未经博主允许不得转载.如果您觉得文章对您有用,请点击文 ...
- 转:C#制作ORM映射学习笔记三 ORM映射实现
现在开始实现ORM的主体模块,首先需要在项目中新建一个类,命名为DbAccess,然后在项目的引用中添加两个dll,分别是MySql.Data.dll和System.Data.SQLite.dll,这 ...
- hdu 3440(差分约束好题)
House Man Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- IP首部之首部校验和
首先介绍一下1的补码,2的补码:(摘自http://blog.csdn.net/cradmin/article/details/3092559) 过1的补码,2的补码,到网上搜了下找到这个: It i ...
- SecureCRT保持连接,不会过一段时间关闭Session
[Options]->[Global Options]->[General]->[Default Session]点击[Edit default settings]按钮,在[Term ...
- iOS UI Element Usage
Bars The Status Bar
- dedecms 留言板中引用模板文件方法
最近在做一个用dedecms搭建的网站,客户提出要有留言板,dedecms带了一个留言板的模块,安装倒是十分简便,但装完后发现界面十分粗糙.装修比较简单,但是发现遇到一个问题:网站通用的导航栏无法显示 ...
- xampp 安装 mysql-python
在已经安装brew前提下:brew install mysql-connector-c pip install MySQL-python