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

📄 double.java

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * @(#)Double.java	1.73 06/10/10 * * Copyright  1990-2008 Sun Microsystems, Inc. All Rights Reserved.   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER   *    * This program is free software; you can redistribute it and/or   * modify it under the terms of the GNU General Public License version   * 2 only, as published by the Free Software Foundation.    *    * This program is distributed in the hope that it will be useful, but   * WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU   * General Public License version 2 for more details (a copy is   * included at /legal/license.txt).    *    * You should have received a copy of the GNU General Public License   * version 2 along with this work; if not, write to the Free Software   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA   * 02110-1301 USA    *    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa   * Clara, CA 95054 or visit www.sun.com if you need additional   * information or have any questions.  * */package java.lang;/** * The <code>Double</code> class wraps a value of the primitive type * <code>double</code> in an object. An object of type * <code>Double</code> contains a single field whose type is * <code>double</code>. * <p> * In addition, this class provides several methods for converting a * <code>double</code> to a <code>String</code> and a * <code>String</code> to a <code>double</code>, as well as other * constants and methods useful when dealing with a * <code>double</code>. * * @version 1.82, 01/23/03 * @since JDK1.0 */public final class Double extends Number implements Comparable {    /**     * A constant holding the positive infinity of type     * <code>double</code>. It is equal to the value returned by     * <code>Double.longBitsToDouble(0x7ff0000000000000L)</code>.     */    public static final double POSITIVE_INFINITY = 1.0 / 0.0;    /**     * A constant holding the negative infinity of type     * <code>double</code>. It is equal to the value returned by     * <code>Double.longBitsToDouble(0xfff0000000000000L)</code>.     */    public static final double NEGATIVE_INFINITY = -1.0 / 0.0;    /**      * A constant holding a Not-a-Number (NaN) value of type     * <code>double</code>. It is equivalent to the value returned by     * <code>Double.longBitsToDouble(0x7ff8000000000000L)</code>.     */    public static final double NaN = 0.0d / 0.0;    /**     * A constant holding the largest positive finite value of type     * <code>double</code>, (2-2<sup>-52</sup>)&middot;2<sup>1023</sup>.     * It is equal to the value returned by:     * <code>Double.longBitsToDouble(0x7fefffffffffffffL)</code>.     */    public static final double MAX_VALUE = 1.7976931348623157e+308;    /**     * A constant holding the smallest positive nonzero value of type     * <code>double</code>, 2<sup>-1074</sup>. It is equal to the     * value returned by <code>Double.longBitsToDouble(0x1L)</code>.     *///  public static final double MIN_VALUE = 4.94065645841246544e-324;//  public static final double MIN_VALUE = 4.9e-324;  // From jdk 1.4.2    public static final double MIN_VALUE = longBitsToDouble(1L);    /**     * The <code>Class</code> instance representing the primitive type     * <code>double</code>.     *     * @since JDK1.1      */    public static final Class	TYPE = Class.getPrimitiveClass("double");    /**     * Returns a string representation of the <code>double</code>      * argument. All characters mentioned below are ASCII characters.     * <ul>     * <li>If the argument is NaN, the result is the string     *     &quot;<code>NaN</code>&quot;.     * <li>Otherwise, the result is a string that represents the sign and      * magnitude (absolute value) of the argument. If the sign is negative,      * the first character of the result is '<code>-</code>'      * (<code>'&#92;u002D'</code>); if the sign is positive, no sign character      * appears in the result. As for the magnitude <i>m</i>:     * <ul>     * <li>If <i>m</i> is infinity, it is represented by the characters      * <code>"Infinity"</code>; thus, positive infinity produces the result      * <code>"Infinity"</code> and negative infinity produces the result      * <code>"-Infinity"</code>.     *     * <li>If <i>m</i> is zero, it is represented by the characters      * <code>"0.0"</code>; thus, negative zero produces the result      * <code>"-0.0"</code> and positive zero produces the result      * <code>"0.0"</code>.      *     * <li>If <i>m</i> is greater than or equal to 10<sup>-3</sup> but less      * than 10<sup>7</sup>, then it is represented as the integer part of      * <i>m</i>, in decimal form with no leading zeroes, followed by      * '<code>.</code>' (<code>'&#92;u002E'</code>), followed by one or      * more decimal digits representing the fractional part of <i>m</i>.      *     * <li>If <i>m</i> is less than 10<sup>-3</sup> or greater than or     * equal to 10<sup>7</sup>, then it is represented in so-called     * "computerized scientific notation." Let <i>n</i> be the unique     * integer such that 10<sup><i>n</i></sup> &lt;= <i>m</i> &lt;     * 10<sup><i>n</i>+1</sup>; then let <i>a</i> be the     * mathematically exact quotient of <i>m</i> and     * 10<sup><i>n</i></sup> so that 1 &lt;= <i>a</i> &lt; 10. The     * magnitude is then represented as the integer part of <i>a</i>,     * as a single decimal digit, followed by '<code>.</code>'     * (<code>'&#92;u002E'</code>), followed by decimal digits     * representing the fractional part of <i>a</i>, followed by the     * letter '<code>E</code>' (<code>'&#92;u0045'</code>), followed     * by a representation of <i>n</i> as a decimal integer, as     * produced by the method {@link Integer#toString(int)}.     * </ul>     * </ul>     * How many digits must be printed for the fractional part of      * <i>m</i> or <i>a</i>? There must be at least one digit to represent      * the fractional part, and beyond that as many, but only as many, more      * digits as are needed to uniquely distinguish the argument value from     * adjacent values of type <code>double</code>. That is, suppose that      * <i>x</i> is the exact mathematical value represented by the decimal      * representation produced by this method for a finite nonzero argument      * <i>d</i>. Then <i>d</i> must be the <code>double</code> value nearest      * to <i>x</i>; or if two <code>double</code> values are equally close      * to <i>x</i>, then <i>d</i> must be one of them and the least     * significant bit of the significand of <i>d</i> must be <code>0</code>.     * <p>     * To create localized string representations of a floating-point     * value, use subclasses of {@link java.text.NumberFormat}.     *     * @param   d   the <code>double</code> to be converted.     * @return a string representation of the argument.     */    public static String toString(double d) {	return new FloatingDecimal(d).toJavaFormatString();    }    /**     * Returns a <code>Double</code> object holding the     * <code>double</code> value represented by the argument string     * <code>s</code>.     * <p>     * If <code>s</code> is <code>null</code>, then a      * <code>NullPointerException</code> is thrown.     * <p>     * Leading and trailing whitespace characters in <code>s</code>     * are ignored. The rest of <code>s</code> should constitute a     * <i>FloatValue</i> as described by the lexical rule:     * <blockquote><i>     * <dl>     * <dt>FloatValue:     * <dd><i>Sign<sub>opt</sub></i> <code>NaN</code>     * <dd><i>Sign<sub>opt</sub></i> <code>Infinity</code>     * <dd>Sign<sub>opt</sub> FloatingPointLiteral     * </dl>     * </i></blockquote>     * where <i>Sign</i> and <i>FloatingPointLiteral</i> are as     * defined in      * <a href="http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#230798">&sect;3.10.2</a>     * of the <a href="http://java.sun.com/docs/books/jls/html/">Java      * Language Specification</a>. If <code>s</code> does not have the      * form of a <i>FloatValue</i>, then a <code>NumberFormatException</code>     * is thrown. Otherwise, <code>s</code> is regarded as     * representing an exact decimal value in the usual "computerized     * scientific notation"; this exact decimal value is then     * conceptually converted to an "infinitely precise" binary value     * that is then rounded to type <code>double</code> by the usual     * round-to-nearest rule of IEEE 754 floating-point arithmetic,     * which includes preserving the sign of a zero value. Finally, a     * <code>Double</code> object representing this     * <code>double</code> value is returned.     * <p>     * To interpret localized string representations of a     * floating-point value, use subclasses of {@link     * java.text.NumberFormat}.     *     * <p>Note that trailing format specifiers, specifiers that     * determine the type of a floating-point literal     * (<code>1.0f</code> is a <code>float</code> value;     * <code>1.0d</code> is a <code>double</code> value), do     * <em>not</em> influence the results of this method.  In other     * words, the numerical value of the input string is converted     * directly to the target floating-point type.  The two-step     * sequence of conversions, string to <code>float</code> followed     * by <code>float</code> to <code>double</code>, is <em>not</em>     * equivalent to converting a string directly to     * <code>double</code>. For example, the <code>float</code>     * literal <code>0.1f</code> is equal to the <code>double</code>     * value <code>0.10000000149011612</code>; the <code>float</code>     * literal <code>0.1f</code> represents a different numerical     * value than the <code>double</code> literal     * <code>0.1</code>. (The numerical value 0.1 cannot be exactly     * represented in a binary floating-point number.)     *     * @param      s   the string to be parsed.     * @return     a <code>Double</code> object holding the value     *             represented by the <code>String</code> argument.     * @exception  NumberFormatException  if the string does not contain a     *               parsable number.     */    public static Double valueOf(String s) throws NumberFormatException {	return new Double(FloatingDecimal.readJavaFormatString(s).doubleValue());    }    /**     * Returns a new <code>double</code> initialized to the value     * represented by the specified <code>String</code>, as performed     * by the <code>valueOf</code> method of class     * <code>Double</code>.     *     * @param      s   the string to be parsed.     * @return the <code>double</code> value represented by the string     *         argument.     * @exception NumberFormatException if the string does not contain     *            a parsable <code>double</code>.     * @see        java.lang.Double#valueOf(String)     * @since 1.2     */    public static double parseDouble(String s) throws NumberFormatException {	return FloatingDecimal.readJavaFormatString(s).doubleValue();    }    /**     * Returns <code>true</code> if the specified number is a     * Not-a-Number (NaN) value, <code>false</code> otherwise.     *     * @param   v   the value to be tested.     * @return  <code>true</code> if the value of the argument is NaN;     *          <code>false</code> otherwise.     */    static public boolean isNaN(double v) {	return (v != v);    }    /**     * Returns <code>true</code> if the specified number is infinitely     * large in magnitude, <code>false</code> otherwise.     *     * @param   v   the value to be tested.     * @return  <code>true</code> if the value of the argument is positive     *          infinity or negative infinity; <code>false</code> otherwise.     */    static public boolean isInfinite(double v) {	return (v == POSITIVE_INFINITY) || (v == NEGATIVE_INFINITY);    }    /**     * The value of the Double.     *     * @serial     */    private double value;    /**     * Constructs a newly allocated <code>Double</code> object that     * represents the primitive <code>double</code> argument.     *     * @param   value   the value to be represented by the <code>Double</code>.     */    public Double(double value) {	this.value = value;    }    /**     * Constructs a newly allocated <code>Double</code> object that     * represents the floating-point value of type <code>double</code>     * represented by the string. The string is converted to a     * <code>double</code> value as if by the <code>valueOf</code> method.     *     * @param      s   a string to be converted to a <code>Double</code>.     * @exception  NumberFormatException  if the string does not contain a     *               parsable number.     * @see        java.lang.Double#valueOf(java.lang.String)     */    public Double(String s) throws NumberFormatException {	// FIXME: this is inefficient	this(valueOf(s).doubleValue());    }    /**     * Returns <code>true</code> if this <code>Double</code> value is     * a Not-a-Number (NaN), <code>false</code> otherwise.     *     * @return  <code>true</code> if the value represented by this object is     *          NaN; <code>false</code> otherwise.     */    public boolean isNaN() {	return isNaN(value);    }    /**     * Returns <code>true</code> if this <code>Double</code> value is     * infinitely large in magnitude, <code>false</code> otherwise.     *     * @return  <code>true</code> if the value represented by this object is     *          positive infinity or negative infinity;     *          <code>false</code> otherwise.     */    public boolean isInfinite() {	return isInfinite(value);    }    /**     * Returns a string representation of this <code>Double</code> object.     * The primitive <code>double</code> value represented by this     * object is converted to a string exactly as if by the method     * <code>toString</code> of one argument.     *     * @return  a <code>String</code> representation of this object.     * @see java.lang.Double#toString(double)     */    public String toString() {	return String.valueOf(value);    }    /**     * Returns the value of this <code>Double</code> as a <code>byte</code> (by     * casting to a <code>byte</code>).     *     * @return  the <code>double</code> value represented by this object     *          converted to type <code>byte</code>     * @since JDK1.1      */    public byte byteValue() {	return (byte)value;    }    /**     * Returns the value of this <code>Double</code> as a     * <code>short</code> (by casting to a <code>short</code>).

⌨️ 快捷键说明

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