double.html

来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 1,256 行 · 第 1/5 页

HTML
1,256 行
字号
 <blockquote><pre> (int)(v^(v&gt;&gt;&gt;32)) </pre></blockquote>其中 <code>v</code> 的定义为:  <blockquote><pre> long v = Double.doubleToLongBits(this.doubleValue()); </pre></blockquote><P><DD><DL><DT><B>覆盖:</B><DD>类 <CODE><A HREF="Object.html" title="java.lang 中的类">Object</A></CODE> 中的 <CODE><A HREF="Object.html#hashCode()">hashCode</A></CODE></DL></DD><DD><DL><DT><B>返回:</B><DD>此对象的 <code>hash code</code> 值。<DT><B>另请参见:</B><DD><A HREF="Object.html#equals(java.lang.Object)"><CODE>Object.equals(java.lang.Object)</CODE></A>, <A HREF="../util/Hashtable.html" title="java.util 中的类"><CODE>Hashtable</CODE></A></DL></DD></DL><HR><A NAME="equals(java.lang.Object)"><!-- --></A><H3>equals</H3><PRE>public boolean <B>equals</B>(<A HREF="Object.html" title="java.lang 中的类">Object</A>&nbsp;obj)</PRE><DL><DD>将该对象与指定对象比较。当且仅当参数不是 <code>null</code> 而是 <code>Double</code> 对象,且表示的 <code>Double</code> 值与该对象所表示的 <code>double</code> 值相同时,结果为 <code>true</code>。为此,当且仅当将方法 <A HREF="Double.html#doubleToLongBits(double)"><CODE>doubleToLongBits(double)</CODE></A> 应用于两个值所返回的 <code>long</code> 值相同时,才认为两个 <code>double</code> 值相同。 <p> 注意,在大多数情况下,对于 <code>Double</code> 类的两个实例 <code>d1</code> 和 <code>d2</code>,当且仅当 <blockquote><pre>   d1.doubleValue()&nbsp;== d2.doubleValue() </pre></blockquote> <p>值也为 <code>true</code> 时,<code>d1.equals(d2)</code> 的值才为 <code>true</code>。但是也有下列两个例外: <ul><li>如果 <code>d1</code> 和 <code>d2</code> 都表示 <code>Double.NaN</code>,那么 <code>equals</code> 方法返回 <code>true</code>,即使 <code>Double.NaN==Double.NaN</code> 值为 <code>false</code>。<li>如果 <code>d1</code> 表示 <code>+0.0</code> 而 <code>d2</code> 表示 <code>-0.0</code>,或者反之,则 <code>equal</code> 测试值为 <code>false</code>,即使 <code>+0.0==-0.0</code> 值为 <code>true</code>。 </ul>该定义使得哈希表得以正确操作。<P><DD><DL><DT><B>覆盖:</B><DD>类 <CODE><A HREF="Object.html" title="java.lang 中的类">Object</A></CODE> 中的 <CODE><A HREF="Object.html#equals(java.lang.Object)">equals</A></CODE></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>obj</CODE> - 要与之进行比较的对象。<DT><B>返回:</B><DD>如果对象相同,则返回 <code>true</code>;否则返回 <code>false</code>。<DT><B>另请参见:</B><DD><A HREF="Double.html#doubleToLongBits(double)"><CODE>doubleToLongBits(double)</CODE></A></DL></DD></DL><HR><A NAME="doubleToLongBits(double)"><!-- --></A><H3>doubleToLongBits</H3><PRE>public static long <B>doubleToLongBits</B>(double&nbsp;value)</PRE><DL><DD>根据 IEEE 754 浮点“双精度形式”位布局,返回指定浮点值的表示形式。 <p>第 63 位(掩码 <code>0x8000000000000000L</code> 选定的位)表示浮点数字的符号。第 62-52 位(掩码 <code>0x7ff0000000000000L</code> 选定的位)表示指数。第 51-0 位(掩码 <code>0x000fffffffffffffL</code> 选定的位)表示浮点数字的有效数(有时也称为尾数)。 <p>如果参数是正无穷大,则结果是 <code>0x7ff0000000000000L</code>。 <p>如果参数是负无穷大,则结果是 <code>0xfff0000000000000L</code>。 <p>如果参数是 NaN,则结果是 <code>0x7ff8000000000000L</code>。  <p>在所有情况下,结果都是一个 <code>long</code> 整数,在将其赋予 <A HREF="Double.html#longBitsToDouble(long)"><CODE>longBitsToDouble(long)</CODE></A> 方法时,将生成一个与 <code>doubleToLongBits</code> 的参数相同的浮点值(除所有 NaN 值被压缩成一个&ldquo;规范的&rdquo;NaN 值之外)。<P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>value</CODE> - <code>double</code> 精度浮点数。<DT><B>返回:</B><DD>表示浮点数的数位。</DL></DD></DL><HR><A NAME="doubleToRawLongBits(double)"><!-- --></A><H3>doubleToRawLongBits</H3><PRE>public static long <B>doubleToRawLongBits</B>(double&nbsp;value)</PRE><DL><DD>根据 IEEE 754 的浮点&ldquo;双精度形式&rdquo;位布局,返回指定浮点值的表示形式,并保留非数字值。 <p>第 63 位(掩码 <code>0x8000000000000000L</code> 选定的位)表示浮点数字的符号。第 62-52 位(掩码 <code>0x7ff0000000000000L</code> 选定的位)表示指数。第 51-0 位(掩码 <code>0x000fffffffffffffL</code> 选定的位)表示浮点数字的有效数(有时也称为尾数)。  <p>如果参数是正无穷大,则结果是 <code>0x7ff0000000000000L</code>。 <p>如果结果是负无穷大,则结果是 <code>0xfff0000000000000L</code>。 <p>如果参数为 NaN,则结果是表示实际 NaN 值的 <code>long</code> 整数。与 <code>doubleToLongBits</code> 方法不同,<code>doubleToRawLongBits</code> 并没有压缩那些将 NaN 编码为一个&ldquo;规范的&rdquo;NaN 值的所有位模式。 <p>在所有情况下,结果都是一个 <code>long</code> 整数,在将其赋予 <A HREF="Double.html#longBitsToDouble(long)"><CODE>longBitsToDouble(long)</CODE></A> 方法时,将生成一个与 <code>doubleToRawLongBits</code> 的参数相同的浮点值。<P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>value</CODE> - <code>double</code> 精度浮点数。<DT><B>返回:</B><DD>表示浮点数的数位。</DL></DD></DL><HR><A NAME="longBitsToDouble(long)"><!-- --></A><H3>longBitsToDouble</H3><PRE>public static double <B>longBitsToDouble</B>(long&nbsp;bits)</PRE><DL><DD>返回对应于给定的位表示形式的 <code>double</code> 值。参数是符合 IEEE 754 的浮点&ldquo;双精度形式&rdquo;中的位布局规定的浮点值表示形式。 <p>如果参数是 <code>0x7ff0000000000000L</code>,则结果是正无穷大。  <p>如果参数是 <code>0xfff0000000000000L</code>,则结果是负无穷大。  <p>如果参数在 <code>0x7ff0000000000001L</code> 到 <code>0x7fffffffffffffffL</code> 或在 <code>0xfff0000000000001L</code> 到 <code>0xffffffffffffffffL</code> 之间,则结果是 NaN。Java 未提供 IEEE 754 浮点操作可以在具有不同位模式的同一类型的两个 NaN 值之间进行区分。不同的 NaN 值只能使用 <code>Double.doubleToRawLongBits</code> 方法进行区分。 <p>在其他所有情况下,设 <i>s</i>、<i>e</i> 和 <i>m</i> 是可以通过参数计算的三个值: <blockquote><pre> int s = ((bits &gt;&gt; 63) == 0) ? 1 : -1; int e = (int)((bits &gt;&gt; 52) &amp; 0x7ffL); long m = (e == 0) ?                 (bits &amp; 0xfffffffffffffL) &lt;&lt; 1 :                 (bits &amp; 0xfffffffffffffL) | 0x10000000000000L; </pre></blockquote>则浮点结果等于算术表达式 <i>s</i>&middot;<i>m</i>&middot;2<sup><i>e</i>-1075</sup> 的值。<p>注意,这个方法可能无法返回具有与 <code>long</code> 参数具有完全相同位模式的 <code>double</code> 类型 NaN 值。IEEE 754 对静默 NaN 和<i>信号 NaN</i> 这两种 NaN 进行了区分。这两种 NaN 之间的差别在 Java 中通常是不可见的。信号 NaN 上的算术运算将它们转换为带有一个有些不同但非常类似的位模式的静默 NaN。但在某些只复制信号 NaN 的处理器上也执行这种转换。特别是在复制信号 NaN,以便将其返回给调用方法的时候,可能会执行这种转换。因此,<code>longBitsToDouble</code> 可能无法返回具有信号 NaN 位模式的 <code>double</code> 值。因此,对于一些 <code>long</code> 值来说,<code>doubleToRawLongBits(longBitsToDouble(start))</code> 可能<i>不</i> 等于 <code>start</code>。此外,尽管所有 NaN 位模式,不管是静默 NaN 还是信号 NaN,都必须在上面确定的 NaN 范围内,但特定位模式表示信号 NaN 是与平台有关的。<P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>bits</CODE> - 任意 <code>long</code> 整数。<DT><B>返回:</B><DD>具有相同位模式的 <code>double</code> 浮点值。</DL></DD></DL><HR><A NAME="compareTo(java.lang.Double)"><!-- --></A><H3>compareTo</H3><PRE>public int <B>compareTo</B>(<A HREF="Double.html" title="java.lang 中的类">Double</A>&nbsp;anotherDouble)</PRE><DL><DD>从数字上比较两个 <code>Double</code> 对象。在应用到基本 <code>double</code> 值时,通过此方法进行的比较与通过 Java 语言的数值比较运算符(<code>&lt;、&lt;=、== 和 &gt;= &gt;</code>)进行的比较之间存在以下两方面的不同: <ul><li>                此方法认为 <code>Double.NaN</code> 等于它自身,且大于其他所有 <code>double</code> 值(包括 <code>Double.POSITIVE_INFINITY</code>)。 <li>                此方法认为 <code>0.0d</code> 大于 <code>-0.0d</code>。 </ul>这可以确保受此方法影响的 <tt>Double</tt> 对象的<i>自然顺序</i> <i>与 equals 方法一致</i>。<P><DD><DL><DT><B>指定者:</B><DD>接口 <CODE><A HREF="Comparable.html" title="java.lang 中的接口">Comparable</A>&lt;<A HREF="Double.html" title="java.lang 中的类">Double</A>&gt;</CODE> 中的 <CODE><A HREF="Comparable.html#compareTo(T)">compareTo</A></CODE></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>anotherDouble</CODE> - 要比较的 <code>Double</code> 值。<DT><B>返回:</B><DD>如果 <code>anotherDouble</code> 在数字上等同于此 <code>Double</code>,则返回 <code>0</code>;如果 <code>Double</code> 在数字上小于此 <code>anotherDouble</code>,则返回小于 <code>0</code> 的值;如果 <code>Double</code> 在数字上大于此 <code>anotherDouble</code>,则返回大于 <code>0</code> 的值。<DT><B>从以下版本开始:</B></DT>  <DD>1.2</DD></DL></DD></DL><HR><A NAME="compare(double, double)"><!-- --></A><H3>compare</H3><PRE>public static int <B>compare</B>(double&nbsp;d1,                          double&nbsp;d2)</PRE><DL><DD>比较两个指定的 <code>double</code> 值。返回的整数值的符号与将通过以下调用所返回的整数的符号相同: <pre>    new Double(d1).compareTo(new Double(d2)) </pre><P><DD><DL></DL></DD><DD><DL><DT><B>参数:</B><DD><CODE>d1</CODE> - 要比较的第一个 <code>double</code><DD><CODE>d2</CODE> - 要比较的第二个 <code>double</code><DT><B>返回:</B><DD>如果 <code>d1</code> 在数字上等于 <code>d2</code>,则返回 <code>0</code>;如果 <code>d1</code> 在数字上小于 <code>d2</code>,则返回小于 <code>0</code> 的值;如果 <code>d1</code> 在数字上大于<code>d2</code>,则返回大于 <code>0</code> 的值。<DT><B>从以下版本开始:</B></DT>  <DD>1.4</DD></DL></DD></DL><!-- ========= END OF CLASS DATA ========= --><HR><!-- ======= START OF BOTTOM NAVBAR ====== --><A NAME="navbar_bottom"><!-- --></A><A HREF="#skip-navbar_bottom" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">  <TR ALIGN="center" VALIGN="top">  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>概述</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>软件包</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>类</B></FONT>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/Double.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A>&nbsp;</TD>  </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup>&nbsp;2&nbsp;Platform<br>Standard&nbsp;Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">&nbsp;<A HREF="Deprecated.html" title="java.lang 中的注释"><B>上一个类</B></A>&nbsp;&nbsp;<A HREF="Enum.html" title="java.lang 中的类"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">  <A HREF="../../index.html@java_2Flang_2FDouble.html" target="_top"><B>框架</B></A>  &nbsp;&nbsp;<A HREF="Double.html" target="_top"><B>无框架</B></A>  &nbsp;&nbsp;<SCRIPT type="text/javascript">  <!--  if(window==top) {    document.writeln('<A HREF="../../allclasses-noframe.html"><B>所有类</B></A>');  }  //--></SCRIPT><NOSCRIPT>  <A HREF="../../allclasses-noframe.html"><B>所有类</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">  摘要:&nbsp;嵌套&nbsp;|&nbsp;<A HREF="#field_summary">字段</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">构造方法</A>&nbsp;|&nbsp;<A HREF="#method_summary">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息:&nbsp;<A HREF="#field_detail">字段</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">构造方法</A>&nbsp;|&nbsp;<A HREF="#method_detail">方法</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR><font size="-1"><a href="../../../../../../../../java.sun.com/cgi-bin/bugreport.cgi">提交错误或意见</a><br>有关更多的 API 参考资料和开发人员文档,请参阅 <a href="../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/devdocs-vs-specs.html">Java 2 SDK SE 开发人员文档</a>。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。 <p>版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守<a href="../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/license.html">许可证条款</a>。另请参阅<a href="../../../../../../../../java.sun.com/docs/redist.html">文档重新分发政策</a>。</font></BODY></HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?