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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bigdecimal.java

?? this gcc-g++-3.3.1.tar.gz is a source file of gcc, you can learn more about gcc through this codes f
?? JAVA
字號:
/* 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);  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
youjizz国产精品| 天天操天天干天天综合网| 国产在线精品免费av| 日韩三区在线观看| 狠狠色伊人亚洲综合成人| 精品久久久久一区二区国产| 韩国女主播一区二区三区| 久久亚洲影视婷婷| 成年人国产精品| 一区二区三区中文字幕| 欧美日韩高清一区| 另类小说欧美激情| 欧美经典一区二区| 色婷婷av一区二区| 青青草视频一区| 国产视频在线观看一区二区三区| av激情综合网| 视频一区二区欧美| 久久久久久麻豆| 91在线丨porny丨国产| 午夜精品久久久久久久| 欧美精品一区二区三区蜜桃| 成人午夜视频在线观看| 亚洲综合精品久久| 欧美电视剧在线观看完整版| 床上的激情91.| 午夜精品福利一区二区三区av | 欧美中文字幕久久| 日本特黄久久久高潮| 国产女人aaa级久久久级| 在线亚洲免费视频| 国产剧情一区在线| 午夜视频在线观看一区二区三区| 亚洲精品一区二区三区福利| 在线观看视频一区二区| 成人综合日日夜夜| 天堂va蜜桃一区二区三区| 国产精品视频免费看| 91精品国产综合久久精品性色 | 亚洲视频免费在线观看| 日韩女优av电影| 色欧美乱欧美15图片| 国产jizzjizz一区二区| 日日夜夜免费精品视频| 中文字幕一区二区视频| 欧美www视频| 欧美日精品一区视频| 高清不卡在线观看| 美腿丝袜亚洲色图| 一区二区三区四区蜜桃| 国产午夜亚洲精品不卡| 日韩视频在线永久播放| 欧美午夜理伦三级在线观看| 国产69精品久久久久毛片| 美女免费视频一区二区| 亚洲国产成人porn| 亚洲色图色小说| 国产欧美日本一区视频| 日韩免费视频一区二区| 欧美久久免费观看| 欧美在线看片a免费观看| 不卡的av网站| 成人高清在线视频| 国产精品主播直播| 狠狠色狠狠色综合| 精品一区二区三区日韩| 免费在线观看精品| 日欧美一区二区| 偷拍日韩校园综合在线| 亚洲图片一区二区| 亚洲主播在线观看| 亚洲成人免费视| 亚洲一线二线三线视频| 亚洲综合视频在线| 亚洲一区在线观看免费| 亚洲狠狠爱一区二区三区| 亚洲国产视频一区| 婷婷久久综合九色综合绿巨人| 亚洲午夜久久久| 天天操天天综合网| 毛片av一区二区| 国产精品乡下勾搭老头1| 国产久卡久卡久卡久卡视频精品| 精品影院一区二区久久久| 精品一区二区三区免费毛片爱 | 国产成都精品91一区二区三| 黑人巨大精品欧美黑白配亚洲| 蜜臀91精品一区二区三区| 美洲天堂一区二卡三卡四卡视频| 免费人成网站在线观看欧美高清| 人人超碰91尤物精品国产| 美女免费视频一区二区| 国产一区二区三区在线观看免费 | 久久久午夜精品理论片中文字幕| 2021国产精品久久精品 | 亚洲精品综合在线| 一区二区三区欧美日韩| 视频精品一区二区| 久久66热偷产精品| 国产剧情一区在线| 日本精品免费观看高清观看| 欧美日韩国产乱码电影| 欧美刺激脚交jootjob| 中文一区在线播放| 亚洲一区在线电影| 久久99国产精品久久99果冻传媒 | 91传媒视频在线播放| 精品视频免费看| 精品三级在线看| 综合av第一页| 三级欧美在线一区| 丁香激情综合国产| 欧美日韩激情一区| 久久久精品黄色| 亚洲一区在线看| 国产成人8x视频一区二区| 欧美午夜视频网站| 欧美国产精品劲爆| 天天操天天干天天综合网| 国产91精品精华液一区二区三区| 色素色在线综合| 久久久久久久久久久久久久久99| 伊人色综合久久天天人手人婷| 蓝色福利精品导航| 欧美影视一区在线| 久久精品欧美一区二区三区不卡 | 亚洲欧美经典视频| 老司机精品视频线观看86| 色先锋久久av资源部| 日韩精品一区二区三区视频在线观看 | 在线免费不卡视频| 久久一二三国产| 日韩高清在线电影| 91一区二区在线| 亚洲精品一区二区在线观看| 亚洲一级在线观看| 白白色 亚洲乱淫| 久久久99久久| 日本成人在线看| 欧美午夜精品一区二区蜜桃| 国产精品网站在线观看| 麻豆国产精品官网| 欧美日韩一区二区电影| 亚洲欧美色图小说| 国产精品香蕉一区二区三区| 欧美一区二区三区在线电影| 一区二区三区高清在线| 99精品在线免费| 国产欧美一区二区精品性| 老司机午夜精品| 日韩三级在线观看| 日本视频一区二区三区| 欧美日韩在线直播| 亚洲免费观看高清完整| eeuss鲁一区二区三区| 国产欧美精品一区二区色综合 | 亚洲综合一区在线| 9久草视频在线视频精品| 国产三级一区二区| 国产精品主播直播| 久久久久国产精品麻豆ai换脸| 老汉av免费一区二区三区| 日韩一区二区在线观看视频播放| 日韩avvvv在线播放| 欧美色图激情小说| 亚洲不卡av一区二区三区| 欧美亚洲国产bt| 亚洲免费观看高清完整版在线观看熊 | 日韩精品在线看片z| 爽爽淫人综合网网站| 欧美放荡的少妇| 青青草原综合久久大伊人精品优势| 777亚洲妇女| 蓝色福利精品导航| 久久精品人人做人人综合| 成人看片黄a免费看在线| 最新国产の精品合集bt伙计| 91女厕偷拍女厕偷拍高清| 亚洲免费观看在线视频| 在线观看亚洲专区| 午夜亚洲国产au精品一区二区 | 日韩欧美中文字幕制服| 久久超碰97中文字幕| 久久精品一级爱片| 成人ar影院免费观看视频| 一区二区三区欧美日| 欧美一级在线免费| 国产麻豆欧美日韩一区| 国产精品乱人伦中文| 91国产免费看| 奇米色一区二区| 久久久久99精品一区| 99re热这里只有精品免费视频 | 亚洲欧美自拍偷拍| 欧美日韩在线三级| 激情亚洲综合在线| 亚洲欧洲成人精品av97| 欧美精品 国产精品| 国产精品亚洲午夜一区二区三区| 国产精品成人一区二区艾草|