⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 double.java

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     *     * @return  the <code>double</code> value represented by this object     *          converted to type <code>short</code>     * @since JDK1.1      */    public short shortValue() {	return (short)value;    }    /**     * Returns the value of this <code>Double</code> as an     * <code>int</code> (by casting to type <code>int</code>).     *     * @return  the <code>double</code> value represented by this object     *          converted to type <code>int</code>     */    public int intValue() {	return (int)value;    }    /**     * Returns the value of this <code>Double</code> as a     * <code>long</code> (by casting to type <code>long</code>).     *     * @return  the <code>double</code> value represented by this object     *          converted to type <code>long</code>     */    public long longValue() {	return (long)value;    }    /**     * Returns the <code>float</code> value of this     * <code>Double</code> object.     *     * @return  the <code>double</code> value represented by this object     *          converted to type <code>float</code>     * @since JDK1.0      */    public float floatValue() {	return (float)value;    }    /**     * Returns the <code>double</code> value of this     * <code>Double</code> object.     *     * @return the <code>double</code> value represented by this object     */    public double doubleValue() {	return (double)value;    }    /**     * Returns a hash code for this <code>Double</code> object. The     * result is the exclusive OR of the two halves of the     * <code>long</code> integer bit representation, exactly as     * produced by the method {@link #doubleToLongBits(double)}, of     * the primitive <code>double</code> value represented by this     * <code>Double</code> object. That is, the hash code is the value     * of the expression:     * <blockquote><pre>     * (int)(v^(v&gt;&gt;&gt;32))     * </pre></blockquote>     * where <code>v</code> is defined by:      * <blockquote><pre>     * long v = Double.doubleToLongBits(this.doubleValue());     * </pre></blockquote>     *     * @return  a <code>hash code</code> value for this object.     */    public int hashCode() {	long bits = doubleToLongBits(value);	return (int)(bits ^ (bits >>> 32));    }    /**     * Compares this object against the specified object.  The result     * is <code>true</code> if and only if the argument is not     * <code>null</code> and is a <code>Double</code> object that     * represents a <code>double</code> that has the same value as the     * <code>double</code> represented by this object. For this     * purpose, two <code>double</code> values are considered to be     * the same if and only if the method {@link     * #doubleToLongBits(double)} returns the identical     * <code>long</code> value when applied to each.     * <p>     * Note that in most cases, for two instances of class     * <code>Double</code>, <code>d1</code> and <code>d2</code>, the     * value of <code>d1.equals(d2)</code> is <code>true</code> if and     * only if     * <blockquote><pre>     *   d1.doubleValue()&nbsp;== d2.doubleValue()     * </pre></blockquote>     * <p>     * also has the value <code>true</code>. However, there are two     * exceptions:     * <ul>     * <li>If <code>d1</code> and <code>d2</code> both represent     *     <code>Double.NaN</code>, then the <code>equals</code> method     *     returns <code>true</code>, even though     *     <code>Double.NaN==Double.NaN</code> has the value     *     <code>false</code>.     * <li>If <code>d1</code> represents <code>+0.0</code> while     *     <code>d2</code> represents <code>-0.0</code>, or vice versa,     *     the <code>equal</code> test has the value <code>false</code>,     *     even though <code>+0.0==-0.0</code> has the value <code>true</code>.     * </ul>     * This definition allows hash tables to operate properly.     * @param   obj   the object to compare with.     * @return  <code>true</code> if the objects are the same;     *          <code>false</code> otherwise.     * @see java.lang.Double#doubleToLongBits(double)     */    public boolean equals(Object obj) {	return (obj instanceof Double)	       && (doubleToLongBits(((Double)obj).value) ==		      doubleToLongBits(value));    }    /**     * Returns a representation of the specified floating-point value     * according to the IEEE 754 floating-point "double     * format" bit layout.     * <p>     * Bit 63 (the bit that is selected by the mask      * <code>0x8000000000000000L</code>) represents the sign of the      * floating-point number. Bits      * 62-52 (the bits that are selected by the mask      * <code>0x7ff0000000000000L</code>) represent the exponent. Bits 51-0      * (the bits that are selected by the mask      * <code>0x000fffffffffffffL</code>) represent the significand      * (sometimes called the mantissa) of the floating-point number.      * <p>     * If the argument is positive infinity, the result is     * <code>0x7ff0000000000000L</code>.     * <p>     * If the argument is negative infinity, the result is     * <code>0xfff0000000000000L</code>.     * <p>     * If the argument is NaN, the result is      * <code>0x7ff8000000000000L</code>.      * <p>     * In all cases, the result is a <code>long</code> integer that, when      * given to the {@link #longBitsToDouble(long)} method, will produce a      * floating-point value the same as the argument to      * <code>doubleToLongBits</code> (except all NaN values are     * collapsed to a single &quot;canonical&quot; NaN value).     *     * @param   value   a <code>double</code> precision floating-point number.     * @return the bits that represent the floating-point number.       */    public static native long doubleToLongBits(double value);    /**     * Returns a representation of the specified floating-point value     * according to the IEEE 754 floating-point "double     * format" bit layout, preserving Not-a-Number (NaN) values.     * <p>     * Bit 63 (the bit that is selected by the mask      * <code>0x8000000000000000L</code>) represents the sign of the      * floating-point number. Bits      * 62-52 (the bits that are selected by the mask      * <code>0x7ff0000000000000L</code>) represent the exponent. Bits 51-0      * (the bits that are selected by the mask      * <code>0x000fffffffffffffL</code>) represent the significand      * (sometimes called the mantissa) of the floating-point number.      * <p>     * If the argument is positive infinity, the result is     * <code>0x7ff0000000000000L</code>.     * <p>     * If the argument is negative infinity, the result is     * <code>0xfff0000000000000L</code>.     * <p>     * If the argument is NaN, the result is the <code>long</code>     * integer representing the actual NaN value.  Unlike the     * <code>doubleToLongBits</code> method,     * <code>doubleToRawLongBits</code> does not collapse all the bit     * patterns encoding a NaN to a single &quot;canonical&quot; NaN     * value.     * <p>     * In all cases, the result is a <code>long</code> integer that,     * when given to the {@link #longBitsToDouble(long)} method, will     * produce a floating-point value the same as the argument to     * <code>doubleToRawLongBits</code>.     *     * @param   value   a <code>double</code> precision floating-point number.     * @return the bits that represent the floating-point number.     */    public static native long doubleToRawLongBits(double value);    /**     * Returns the <code>double</code> value corresponding to a given     * bit representation.     * The argument is considered to be a representation of a     * floating-point value according to the IEEE 754 floating-point     * "double format" bit layout.     * <p>     * If the argument is <code>0x7ff0000000000000L</code>, the result      * is positive infinity.      * <p>     * If the argument is <code>0xfff0000000000000L</code>, the result      * is negative infinity.      * <p>     * If the argument is any value in the range     * <code>0x7ff0000000000001L</code> through     * <code>0x7fffffffffffffffL</code> or in the range     * <code>0xfff0000000000001L</code> through     * <code>0xffffffffffffffffL</code>, the result is a NaN.  No IEEE     * 754 floating-point operation provided by Java can distinguish     * between two NaN values of the same type with different bit     * patterns.  Distinct values of NaN are only distinguishable by     * use of the <code>Double.doubleToRawLongBits</code> method.     * <p>     * In all other cases, let <i>s</i>, <i>e</i>, and <i>m</i> be three      * values that can be computed from the argument:      * <blockquote><pre>     * int s = ((bits &gt;&gt; 63) == 0) ? 1 : -1;     * int e = (int)((bits &gt;&gt; 52) & 0x7ffL);     * long m = (e == 0) ?     *                 (bits & 0xfffffffffffffL) &lt;&lt; 1 :     *                 (bits & 0xfffffffffffffL) | 0x10000000000000L;     * </pre></blockquote>     * Then the floating-point result equals the value of the mathematical      * expression <i>s</i>&middot;<i>m</i>&middot;2<sup><i>e</i>-1075</sup>.     *<p>     * Note that this method may not be able to return a     * <code>double</code> NaN with exactly same bit pattern as the     * <code>long</code> argument.  IEEE 754 distinguishes between two     * kinds of NaNs, quiet NaNs and <i>signaling NaNs</i>.  The     * differences between the two kinds of NaN are generally not     * visible in Java.  Arithmetic operations on signaling NaNs turn     * them into quiet NaNs with a different, but often similar, bit     * pattern.  However, on some processors merely copying a     * signaling NaN also performs that conversion.  In particular,     * copying a signaling NaN to return it to the calling method     * may perform this conversion.  So <code>longBitsToDouble</code>     * may not be able to return a <code>double</code> with a     * signaling NaN bit pattern.  Consequently, for some     * <code>long</code> values,     * <code>doubleToRawLongBits(longBitsToDouble(start))</code> may     * <i>not</i> equal <code>start</code>.  Moreover, which     * particular bit patterns represent signaling NaNs is platform     * dependent; although all NaN bit patterns, quiet or signaling,     * must be in the NaN range identified above.     *     * @param   bits   any <code>long</code> integer.     * @return  the <code>double</code> floating-point value with the same     *          bit pattern.     */    public static native double longBitsToDouble(long bits);    /**     * Compares two <code>Double</code> objects numerically.  There     * are two ways in which comparisons performed by this method     * differ from those performed by the Java language numerical     * comparison operators (<code>&lt;, &lt;=, ==, &gt;= &gt;</code>)     * when applied to primitive <code>double</code> values:     * <ul><li>     *		<code>Double.NaN</code> is considered by this method     *		to be equal to itself and greater than all other     *		<code>double</code> values (including     *		<code>Double.POSITIVE_INFINITY</code>).     * <li>     *		<code>0.0d</code> is considered by this method to be greater     *		than <code>-0.0d</code>.     * </ul>     * This ensures that <code>Double.compareTo(Object)</code> (which     * forwards its behavior to this method) obeys the general     * contract for <code>Comparable.compareTo</code>, and that the     * <i>natural order</i> on <code>Double</code>s is <i>consistent     * with equals</i>.     *     * @param   anotherDouble   the <code>Double</code> to be compared.     * @return  the value <code>0</code> if <code>anotherDouble</code> is     *		numerically equal to this <code>Double</code>; a value     *		less than <code>0</code> if this <code>Double</code>     *		is numerically less than <code>anotherDouble</code>;     *		and a value greater than <code>0</code> if this     *		<code>Double</code> is numerically greater than     *		<code>anotherDouble</code>.     *		     * @since   1.2     * @see Comparable#compareTo(Object)     */    public int compareTo(Double anotherDouble) {        return Double.compare(value, anotherDouble.value);    }    /**     * Compares this <code>Double</code> object to another object.  If     * the object is a <code>Double</code>, this function behaves like     * <code>compareTo(Double)</code>.  Otherwise, it throws a     * <code>ClassCastException</code> (as <code>Double</code> objects     * are comparable only to other <code>Double</code> objects).     *     * @param   o the <code>Object</code> to be compared.     * @return the value <code>0</code> if the argument is a     *		<code>Double</code> numerically equal to this     *		<code>Double</code>; a value less than <code>0</code>     *		if the argument is a <code>Double</code> numerically     *		greater than this <code>Double</code>; and a value     *		greater than <code>0</code> if the argument is a     *		<code>Double</code> numerically less than this     *		<code>Double</code>.     * @exception <code>ClassCastException</code> if the argument is not a     *		  <code>Double</code>.     * @see     java.lang.Comparable     * @since 1.2     */    public int compareTo(Object o) {	return compareTo((Double)o);    }    /**     * Compares the two specified <code>double</code> values. The sign     * of the integer value returned is the same as that of the     * integer that would be returned by the call:     * <pre>     *    new Double(d1).compareTo(new Double(d2))     * </pre>     *     * @param   d1        the first <code>double</code> to compare     * @param   d2        the second <code>double</code> to compare     * @return  the value <code>0</code> if <code>d1</code> is     *		numerically equal to <code>d2</code>; a value less than     *          <code>0</code> if <code>d1</code> is numerically less than     *		<code>d2</code>; and a value greater than <code>0</code>     *		if <code>d1</code> is numerically greater than     *		<code>d2</code>.     * @since 1.4     */    public static int compare(double d1, double d2) {        if (d1 < d2)            return -1;		 // Neither val is NaN, thisVal is smaller        if (d1 > d2)            return 1;		 // Neither val is NaN, thisVal is larger        long thisBits = Double.doubleToLongBits(d1);        long anotherBits = Double.doubleToLongBits(d2);        return (thisBits == anotherBits ?  0 : // Values are equal                (thisBits < anotherBits ? -1 : // (-0.0, 0.0) or (!NaN, NaN)                 1));                          // (0.0, -0.0) or (NaN, !NaN)    }    /** use serialVersionUID from JDK 1.0.2 for interoperability */    private static final long serialVersionUID = -9172774392245257468L;}

⌨️ 快捷键说明

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