亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bigdecimal.java

?? gcc-you can use this code to learn something about gcc, and inquire further into linux,
?? JAVA
字號(hào):
/* java.math.BigDecimal -- Arbitrary precision decimals.   Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.This file is part of GNU Classpath.GNU Classpath is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version. GNU Classpath is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Classpath; see the file COPYING.  If not, write to theFree Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA02111-1307 USA.Linking this library statically or dynamically with other modules ismaking a combined work based on this library.  Thus, the terms andconditions of the GNU General Public License cover the wholecombination.As a special exception, the copyright holders of this library give youpermission to link this library with independent modules to produce anexecutable, regardless of the license terms of these independentmodules, and to copy and distribute the resulting executable underterms of your choice, provided that you also meet, for each linkedindependent module, the terms and conditions of the license of thatmodule.  An independent module is a module which is not derived fromor based on this library.  If you modify this library, you may extendthis exception to your version of the library, but you are notobligated to do so.  If you do not wish to do so, delete thisexception statement from your version. */package java.math;import java.math.BigInteger;public class BigDecimal extends Number implements Comparable{  private BigInteger intVal;  private int scale;  private static final long serialVersionUID = 6108874887143696463L;  private final static BigDecimal ZERO =     new BigDecimal (BigInteger.valueOf (0), 0);  private final static BigDecimal ONE =     new BigDecimal (BigInteger.valueOf (1), 0);  public final static int ROUND_UP = 0;  public final static int ROUND_DOWN = 1;  public final static int ROUND_CEILING = 2;  public final static int ROUND_FLOOR = 3;  public final static int ROUND_HALF_UP = 4;  public final static int ROUND_HALF_DOWN = 5;  public final static int ROUND_HALF_EVEN = 6;  public final static int ROUND_UNNECESSARY = 7;  public BigDecimal (BigInteger num)   {    this (num, 0);  }  public BigDecimal (BigInteger num, int scale) throws NumberFormatException   {    if (scale < 0)       throw new NumberFormatException ("scale of " + scale + " is < 0");    this.intVal = num;    this.scale = scale;  }  public BigDecimal (double num) throws NumberFormatException   {    if (Double.isInfinite (num) || Double.isNaN (num))      throw new NumberFormatException ("invalid argument: " + num);    // Note we can't convert NUM to a String and then use the    // String-based constructor.  The BigDecimal documentation makes    // it clear that the two constructors work differently.    final int mantissaBits = 52;    final int exponentBits = 11;    final long mantMask = (1L << mantissaBits) - 1;    final long expMask = (1L << exponentBits) - 1;    long bits = Double.doubleToLongBits (num);    long mantissa = bits & mantMask;    long exponent = (bits >>> mantissaBits) & expMask;    boolean denormal = exponent == 0;    // Correct the exponent for the bias.    exponent -= denormal ? 1022 : 1023;    // Now correct the exponent to account for the bits to the right    // of the decimal.    exponent -= mantissaBits;    // Ordinary numbers have an implied leading `1' bit.    if (! denormal)      mantissa |= (1L << mantissaBits);    // Shave off factors of 10.    while (exponent < 0 && (mantissa & 1) == 0)      {	++exponent;	mantissa >>= 1;      }    intVal = BigInteger.valueOf (bits < 0 ? - mantissa : mantissa);    if (exponent < 0)      {	// We have MANTISSA * 2 ^ (EXPONENT).	// Since (1/2)^N == 5^N * 10^-N we can easily convert this	// into a power of 10.	scale = (int) (- exponent);	BigInteger mult = BigInteger.valueOf (5).pow (scale);	intVal = intVal.multiply (mult);      }    else      {	intVal = intVal.shiftLeft ((int) exponent);	scale = 0;      }  }  public BigDecimal (String num) throws NumberFormatException   {    int len = num.length();    int start = 0, point = 0;    int dot = -1;    boolean negative = false;    if (num.charAt(0) == '+')      {	++start;	++point;      }    else if (num.charAt(0) == '-')      {	++start;	++point;	negative = true;      }    while (point < len)      {	char c = num.charAt (point);	if (c == '.')	  {	    if (dot >= 0)	      throw new NumberFormatException ("multiple `.'s in number");	    dot = point;	  }	else if (c == 'e' || c == 'E')	  break;	else if (Character.digit (c, 10) < 0)	  throw new NumberFormatException ("unrecognized character: " + c);	++point;      }    String val;    if (dot >= 0)      {	val = num.substring (start, dot) + num.substring (dot + 1, point);	scale = point - 1 - dot;      }    else      {	val = num.substring (start, point);	scale = 0;      }    if (val.length () == 0)      throw new NumberFormatException ("no digits seen");    if (negative)      val = "-" + val;    intVal = new BigInteger (val);    // Now parse exponent.    if (point < len)      {        point++;        if (num.charAt(point) == '+')          point++;        if (point >= len )          throw new NumberFormatException ("no exponent following e or E");	        try 	  {	    int exp = Integer.parseInt (num.substring (point));	    exp -= scale;	    if (signum () == 0)	      scale = 0;	    else if (exp > 0)	      {		intVal = intVal.multiply (BigInteger.valueOf (10).pow (exp));		scale = 0;	      }	    else	      scale = - exp;	  }        catch (NumberFormatException ex) 	  {	    throw new NumberFormatException ("malformed exponent");	  }      }  }  public static BigDecimal valueOf (long val)   {    return valueOf (val, 0);  }  public static BigDecimal valueOf (long val, int scale)     throws NumberFormatException   {    if ((scale == 0) && ((int)val == val))      switch ((int) val)	{	case 0:	  return ZERO;	case 1:	  return ONE;	}    return new BigDecimal (BigInteger.valueOf (val), scale);  }  public BigDecimal add (BigDecimal val)   {    // For addition, need to line up decimals.  Note that the movePointRight    // method cannot be used for this as it might return a BigDecimal with    // scale == 0 instead of the scale we need.    BigInteger op1 = intVal;    BigInteger op2 = val.intVal;    if (scale < val.scale)      op1 = op1.multiply (BigInteger.valueOf (10).pow (val.scale - scale));    else if (scale > val.scale)      op2 = op2.multiply (BigInteger.valueOf (10).pow (scale - val.scale));    return new BigDecimal (op1.add (op2), Math.max (scale, val.scale));  }  public BigDecimal subtract (BigDecimal val)   {    return this.add(val.negate());  }  public BigDecimal multiply (BigDecimal val)   {    return new BigDecimal (intVal.multiply (val.intVal), scale + val.scale);  }  public BigDecimal divide (BigDecimal val, int roundingMode)     throws ArithmeticException, IllegalArgumentException   {    return divide (val, scale, roundingMode);  }  public BigDecimal divide(BigDecimal val, int newScale, int roundingMode)    throws ArithmeticException, IllegalArgumentException   {    if (roundingMode < 0 || roundingMode > 7)      throw 	new IllegalArgumentException("illegal rounding mode: " + roundingMode);    if (newScale < 0)      throw new ArithmeticException ("scale is negative: " + newScale);    if (intVal.signum () == 0)	// handle special case of 0.0/0.0      return newScale == 0 ? ZERO : new BigDecimal (ZERO.intVal, newScale);        // Ensure that pow gets a non-negative value.    int valScale = val.scale;    BigInteger valIntVal = val.intVal;    int power = newScale + 1 - (scale - val.scale);    if (power < 0)      {	// Effectively increase the scale of val to avoid an	// ArithmeticException for a negative power.        valIntVal = valIntVal.multiply (BigInteger.valueOf (10).pow (-power));	power = 0;      }    BigInteger dividend = intVal.multiply (BigInteger.valueOf (10).pow (power));        BigInteger parts[] = dividend.divideAndRemainder (valIntVal);//      System.out.println("int: " + parts[0]);//      System.out.println("rem: " + parts[1]);    int roundDigit = parts[0].mod (BigInteger.valueOf (10)).intValue ();    BigInteger unrounded = parts[0].divide (BigInteger.valueOf (10));    if (roundDigit == 0 && parts[1].signum () == 0) // no rounding necessary      return new BigDecimal (unrounded, newScale);    int sign = unrounded.signum ();    switch (roundingMode)      {      case ROUND_UNNECESSARY:	throw new ArithmeticException ("newScale is not large enough");      case ROUND_CEILING:	roundingMode = (sign == 1) ? ROUND_UP : ROUND_DOWN;	break;      case ROUND_FLOOR:	roundingMode = (sign == 1) ? ROUND_DOWN : ROUND_UP;	break;      case ROUND_HALF_UP:	roundingMode = (roundDigit >= 5) ? ROUND_UP : ROUND_DOWN;	break;      case ROUND_HALF_DOWN:	roundingMode = (roundDigit > 5) ? ROUND_UP : ROUND_DOWN;	break;      case ROUND_HALF_EVEN:	if (roundDigit < 5)	  roundingMode = ROUND_DOWN;	else	  {	    int rightmost = 	      unrounded.mod (BigInteger.valueOf (10)).intValue ();	    if (rightmost % 2 == 1) // odd, then ROUND_HALF_UP	      roundingMode = ROUND_UP;	    else // even, then ROUND_HALF_DOWN	      roundingMode = (roundDigit > 5) ? ROUND_UP : ROUND_DOWN;	  }	break;      }    if (roundingMode == ROUND_UP)      return new BigDecimal (unrounded.add (BigInteger.valueOf (1)), newScale);    // roundingMode == ROUND_DOWN    return new BigDecimal (unrounded, newScale);  }      public int compareTo (BigDecimal val)   {    if (scale == val.scale)      return intVal.compareTo (val.intVal);    BigInteger thisParts[] =       intVal.divideAndRemainder (BigInteger.valueOf (10).pow (scale));    BigInteger valParts[] =      val.intVal.divideAndRemainder (BigInteger.valueOf (10).pow (val.scale));        int compare;    if ((compare = thisParts[0].compareTo (valParts[0])) != 0)      return compare;    // quotients are the same, so compare remainders    // remove trailing zeros    if (thisParts[1].equals (BigInteger.valueOf (0)) == false)      while (thisParts[1].mod (BigInteger.valueOf (10)).equals	     (BigInteger.valueOf (0)))      thisParts[1] = thisParts[1].divide (BigInteger.valueOf (10));    // again...    if (valParts[1].equals(BigInteger.valueOf (0)) == false)      while (valParts[1].mod (BigInteger.valueOf (10)).equals	     (BigInteger.valueOf (0)))	valParts[1] = valParts[1].divide (BigInteger.valueOf (10));    // and compare them    return thisParts[1].compareTo (valParts[1]);  }  public int compareTo (Object val)   {    return(compareTo((BigDecimal)val));  }  public boolean equals (Object o)   {    return (o instanceof BigDecimal 	    && scale == ((BigDecimal) o).scale	    && compareTo ((BigDecimal) o) == 0);  }  public int hashCode()   {    return intValue() ^ scale;  }  public BigDecimal max (BigDecimal val)  {    switch (compareTo (val))       {      case 1:	return this;      default:	return val;      }  }  public BigDecimal min (BigDecimal val)   {    switch (compareTo (val))       {      case -1:	return this;      default:	return val;      }  }  public BigDecimal movePointLeft (int n)  {    return (n < 0) ? movePointRight (-n) : new BigDecimal (intVal, scale + n);  }  public BigDecimal movePointRight (int n)  {    if (n < 0)      return movePointLeft (-n);    if (scale >= n)      return new BigDecimal (intVal, scale - n);    return new BigDecimal (intVal.multiply 			   (BigInteger.valueOf (10).pow (n - scale)), 0);  }  public int signum ()   {    return intVal.signum ();  }  public int scale ()   {    return scale;  }    public BigInteger unscaledValue()  {    return intVal;  }  public BigDecimal abs ()   {    return new BigDecimal (intVal.abs (), scale);  }  public BigDecimal negate ()   {    return new BigDecimal (intVal.negate (), scale);  }  public String toString ()   {    String bigStr = intVal.toString();    if (scale == 0)       return bigStr;    boolean negative = (bigStr.charAt(0) == '-');    int point = bigStr.length() - scale - (negative ? 1 : 0);    StringBuffer sb = new StringBuffer(bigStr.length() + 2 +				       (point <= 0 ? (-point + 1) : 0));    if (point <= 0)      {        if (negative)          sb.append('-');        sb.append('0').append('.');        while (point < 0)          {            sb.append('0');            point++;          }        sb.append(bigStr.substring(negative ? 1 : 0));      }    else      {	sb.append(bigStr);	sb.insert(point + (negative ? 1 : 0), '.');      }    return sb.toString();  }  public BigInteger toBigInteger ()   {    return scale == 0 ? intVal :      intVal.divide (BigInteger.valueOf (10).pow (scale));  }  public int intValue ()   {    return toBigInteger ().intValue ();  }  public long longValue ()  {    return toBigInteger().longValue();  }  public float floatValue()   {    return Float.valueOf(toString()).floatValue();  }  public double doubleValue()   {    return Double.valueOf(toString()).doubleValue();  }  public BigDecimal setScale (int scale) throws ArithmeticException  {    return setScale (scale, ROUND_UNNECESSARY);  }  public BigDecimal setScale (int scale, int roundingMode)    throws ArithmeticException, IllegalArgumentException  {    return divide (ONE, scale, roundingMode);  }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产久精国产| 91九色最新地址| 国产资源在线一区| 免费精品视频在线| 免费成人av在线播放| 91久久精品一区二区三区| a美女胸又www黄视频久久| 国产成人99久久亚洲综合精品| 激情综合色播五月| 久久99精品国产91久久来源| 毛片av一区二区| 精品亚洲国产成人av制服丝袜| 美女网站一区二区| 久久99精品久久久久久动态图| 精品制服美女丁香| 国产成人免费视频网站 | 中文文精品字幕一区二区| 久久亚区不卡日本| 中文字幕精品一区二区精品绿巨人| 国产欧美日韩在线| 国产精品成人午夜| 亚洲主播在线播放| 日日夜夜免费精品| 国产乱对白刺激视频不卡| 国内精品不卡在线| 成人精品视频一区| 欧美性色综合网| 欧美一级淫片007| 久久这里只有精品首页| 国产精品―色哟哟| 亚洲国产精品人人做人人爽| 青青草国产成人99久久| 国产成人自拍网| 91久久国产综合久久| 制服丝袜亚洲精品中文字幕| 精品免费国产一区二区三区四区| 久久精品一区八戒影视| 亚洲色图欧美在线| 亚洲成人av免费| 国产乱码精品一区二区三| 91免费在线看| 日韩一级高清毛片| 国产精品久久免费看| 亚洲成人动漫在线免费观看| 激情五月婷婷综合| 色婷婷国产精品久久包臀| 日韩午夜激情免费电影| 中文字幕一区视频| 人禽交欧美网站| 成人激情综合网站| 正在播放亚洲一区| 国产精品青草综合久久久久99| 亚洲国产另类精品专区| 国产精品主播直播| 欧美日韩国产免费一区二区 | 亚洲一二三区在线观看| 韩国女主播一区| 欧美性淫爽ww久久久久无| www国产精品av| 亚洲成人av福利| 成人午夜视频网站| 欧美tickle裸体挠脚心vk| 亚洲欧美日韩中文播放| 激情图区综合网| 欧美日韩免费一区二区三区| 国产拍揄自揄精品视频麻豆| 亚瑟在线精品视频| 成人久久18免费网站麻豆 | 久久久久久久久伊人| 午夜视频一区二区| 99久久综合精品| 久久精品欧美日韩精品 | 国产寡妇亲子伦一区二区| 欧美剧情片在线观看| 国产精品视频看| 国产一区二区不卡在线| 制服.丝袜.亚洲.另类.中文| 亚洲精品国久久99热| 国产成人午夜精品5599| 欧美一区二区福利视频| 一个色综合网站| 成人av综合在线| 国产亚洲一二三区| 精品一区二区三区不卡| 欧美日韩国产影片| 亚洲一区在线视频| 91在线观看成人| 中文字幕在线不卡一区二区三区| 国产一区二区不卡| 久久先锋影音av鲁色资源 | 欧美四级电影网| 亚洲九九爱视频| 成人福利视频在线看| 国产日韩精品一区二区浪潮av | 91麻豆精品国产91久久久 | 国产精品18久久久久久久网站| 日韩一级黄色片| 久久国内精品自在自线400部| 欧美日韩黄色一区二区| 亚洲一区二区免费视频| 色婷婷久久99综合精品jk白丝| 国产精品久久久久久亚洲伦| 成人丝袜18视频在线观看| 国产视频亚洲色图| 国产不卡视频一区二区三区| 久久先锋影音av| 91精品麻豆日日躁夜夜躁| 亚洲第四色夜色| 91精品国产综合久久久久久久久久| 一区二区三区.www| 欧美日韩色一区| 日韩**一区毛片| 日韩欧美国产wwwww| 精品一区二区三区av| 国产亚洲一区二区三区四区 | 激情久久五月天| 国产亚洲欧美中文| 成人avav在线| 亚洲精品国产a久久久久久| 欧洲视频一区二区| 亚洲成人午夜影院| 日韩欧美高清一区| 国产成人在线影院| 中文字幕综合网| 欧美日韩一区二区三区在线看| 亚洲bdsm女犯bdsm网站| 91精品国产色综合久久ai换脸| 久久精品二区亚洲w码| 国产欧美日韩麻豆91| 91网站最新地址| 婷婷夜色潮精品综合在线| 精品日韩在线一区| 高清在线成人网| 亚洲综合一区二区| 欧美大度的电影原声| 成人在线综合网| 亚洲成人第一页| 2017欧美狠狠色| 99久久婷婷国产| 亚洲线精品一区二区三区八戒| 日韩视频一区二区在线观看| 国产成人精品在线看| 亚洲午夜免费电影| 久久综合九色综合97婷婷| 成人av在线一区二区| 亚洲一区二区精品久久av| 精品国产麻豆免费人成网站| 成人精品国产福利| 日韩成人一级大片| 国产精品色在线| 91精品国产综合久久精品性色| 精品影院一区二区久久久| 综合久久久久久久| 日韩午夜激情视频| 91在线播放网址| 国内精品国产成人国产三级粉色| 亚洲人成精品久久久久| 欧美一区二区三区在线| 99热精品一区二区| 久久97超碰色| 亚洲成人资源网| 国产精品美女一区二区| 欧美军同video69gay| 风间由美一区二区av101 | 91在线观看地址| 久久99国产精品麻豆| 一区二区三区免费| 久久人人爽爽爽人久久久| 欧美图片一区二区三区| 国产91富婆露脸刺激对白 | 欧美区一区二区三区| 岛国精品一区二区| 美腿丝袜亚洲色图| 亚洲一区二区三区激情| 中文字幕免费观看一区| 欧美一级免费观看| 欧美亚洲国产一区二区三区va| 国产二区国产一区在线观看| 日韩电影在线免费| 亚洲一区视频在线观看视频| 国产欧美一区二区精品仙草咪| 91精品国产一区二区人妖| 日本丰满少妇一区二区三区| 国产精品888| 黄色小说综合网站| 日韩av一区二区在线影视| 亚洲综合色丁香婷婷六月图片| 中文字幕不卡在线播放| 久久日一线二线三线suv| 欧美一区二区三区在线观看视频 | 欧美放荡的少妇| 欧美在线观看禁18| 91麻豆精品视频| 成人国产一区二区三区精品| 国产一区二区视频在线| 老司机精品视频线观看86 | 9191久久久久久久久久久| 91免费观看视频在线| 成人午夜电影网站| 国产a久久麻豆|