繁体   English   中英

Double.parseDouble(String)和Double.valueOf(String)有什么区别?

[英]What is the difference between Double.parseDouble(String) and Double.valueOf(String)?

我想将String转换为Double数据类型。 我不知道是否应该使用parseDoublevalueOf

这两种方法有什么区别?

parseDouble返回包含字符串值的原始double:

返回一个初始化为由指定String表示的值的新double,由double类的valueOf方法执行。

valueOf返回一个Double实例,如果已经缓存,您将获得相同的缓存实例。

返回表示指定double值的Double实例。 如果不需要新的Double实例,通常应优先使用此方法,而不是构造函数Double(double),因为此方法可能通过缓存频繁请求的值来显着提高空间和时间性能。

为避免创建新Double对象实例的开销,通常应使用valueOf

Double.parseDouble(String)将返回一个原始的double类型。 Double.valueOf(String)将返回Double类型的包装器对象。

所以,对于例如:

double d = Double.parseDouble("1");

Double d = Double.valueOf("1");

而且, valueOf(...)是一个重载方法。 它有两个变种:

  1. Double valueOf(String s)
  2. Double valueOf(double d)

parseDouble是具有以下签名的单个方法:

  1. double parseDouble(String s)

它们都将String转换为double值,但是当parseDouble()方法返回原始double值时,valueOf()方法进一步将原始double转换为包含原始double值的Double包装类对象。

如果String中的值不可转换为基本double,则从String到primitive double的转换可能会抛出NFE(NumberFormatException)。

parseDouble()方法用于初始化STRING(应该包含一些数值)....它返回的值是原始数据类型,如int,float等。

但是valueOf()创建了一个Wrapper类的对象。 您必须打开它才能获得double值。 它可以与巧克力进行比较。 制造商用一些箔或纸包裹巧克力以防止污染。 用户拿出巧克力,移除并扔掉包装并吃掉它。

请注意以下转换。

int k = 100; Integer it1 = new Integer(k);

int数据类型k使用Integer类转换为对象it1。 it1对象可以在Java编程中用于需要k的对象。

以下代码可用于解包(从Integer对象返回int)对象it1。

int m = it1.intValue();

的System.out.println(M * M); //打印10000

// intValue()是一个Integer类的方法,它返回一个int数据类型。

parseDouble()文档说“返回一个初始化为由指定String表示的值的新double,由double类的valueOf方法执行。”因此它们应该是相同的。

如果要将字符串转换为double数据类型,则大多数选择parseDouble()方法。 请参阅示例代码:

String str = "123.67";
double d = parseDouble(str);

您将获得双倍的值。 请参阅tutorialData上的StringToDouble 教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM