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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? bigdecimal.java

?? linux下的gcc編譯器
?? 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);  }}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲二区在线视频| 欧美三级视频在线| 国产成人免费9x9x人网站视频| 欧美aaa在线| 首页国产丝袜综合| 丝瓜av网站精品一区二区| 午夜精品免费在线| 日产国产欧美视频一区精品| 日日夜夜免费精品| 日韩成人av影视| 日韩av电影天堂| 美女一区二区三区在线观看| 麻豆国产精品777777在线| 麻豆91精品视频| 国内精品免费**视频| 国产超碰在线一区| 波多野结衣在线aⅴ中文字幕不卡| 成人国产在线观看| 色www精品视频在线观看| 色婷婷综合久久久中文一区二区 | 毛片一区二区三区| 九一久久久久久| 国产激情视频一区二区在线观看| 成人一区二区三区在线观看| 99国产精品久久| 欧美色涩在线第一页| 一区二区三区在线观看欧美 | 韩国精品在线观看| 国产精品亚洲一区二区三区妖精 | 久久久久久久电影| 中文字幕在线不卡| 亚洲国产aⅴ天堂久久| 久久精品国产999大香线蕉| 国产麻豆91精品| 日本伦理一区二区| 欧美一区二区三区免费观看视频 | 婷婷综合在线观看| 国产精品一区不卡| 欧美在线一区二区三区| 日韩美女一区二区三区| 国产精品久久久久久久久免费丝袜| 亚洲色大成网站www久久九九| 午夜一区二区三区在线观看| 国产综合一区二区| 91国在线观看| 精品成人一区二区三区四区| 中文字幕欧美一区| 日韩福利视频网| 韩国精品主播一区二区在线观看 | 久久精品这里都是精品| 一区二区在线电影| 久久国产综合精品| 日本韩国欧美在线| ww亚洲ww在线观看国产| 亚洲视频你懂的| 精品一区二区三区免费视频| 99久久er热在这里只有精品15| 91精品国模一区二区三区| 国产精品国产精品国产专区不片| 日韩中文字幕亚洲一区二区va在线| 国产69精品久久久久毛片| 51精品久久久久久久蜜臀| 中文字幕一区二区三区不卡| 69av一区二区三区| 中文字幕在线观看不卡视频| 麻豆国产欧美一区二区三区| 欧美主播一区二区三区美女| 久久久久久久国产精品影院| 丝袜国产日韩另类美女| 91丨porny丨在线| 久久一区二区三区四区| 日本亚洲电影天堂| 在线亚洲人成电影网站色www| 久久精品夜色噜噜亚洲a∨| 天天爽夜夜爽夜夜爽精品视频| 99re热视频精品| 久久久精品天堂| 蜜臀av性久久久久蜜臀av麻豆 | 亚洲国产精品精华液ab| 天天av天天翘天天综合网 | 日韩一区二区电影| 亚洲成av人影院在线观看网| 95精品视频在线| 久久精品夜夜夜夜久久| 精品一区二区免费视频| 日韩一区二区不卡| 日韩激情中文字幕| 欧美日韩一区二区三区高清| 亚洲精品久久久蜜桃| 成人福利视频网站| 国产日产欧美精品一区二区三区| 久久99精品视频| 日韩女优av电影| 美女视频一区二区| 欧美电影免费提供在线观看| 日韩精品亚洲一区二区三区免费| 欧美日韩亚洲综合一区| 亚洲444eee在线观看| 欧美午夜片在线看| 亚洲亚洲精品在线观看| 欧美日韩一区二区三区在线看| 亚洲一本大道在线| 在线电影国产精品| 日本在线观看不卡视频| 欧美一区二区三区在线观看视频 | 欧美区在线观看| 午夜影院久久久| 91精品国产美女浴室洗澡无遮挡| 亚洲成av人片一区二区| 欧美日韩日日夜夜| 免费一区二区视频| 久久精品视频一区二区三区| 国产精品99久久久久久久女警| 国产调教视频一区| 99精品国产热久久91蜜凸| 亚洲精选视频在线| 欧美日韩高清不卡| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品国产123| 成人午夜精品在线| 亚洲人成小说网站色在线| 在线区一区二视频| 无码av免费一区二区三区试看| 一区二区三区在线观看网站| 欧美精品xxxxbbbb| 国产在线精品视频| 中文字幕色av一区二区三区| 在线看国产一区二区| 天堂精品中文字幕在线| 欧美va天堂va视频va在线| 国产成人免费xxxxxxxx| 夜夜嗨av一区二区三区| 日韩精品一区二区三区在线| 成人午夜私人影院| 亚洲一区二区三区在线看| 欧美mv和日韩mv的网站| 99久久婷婷国产综合精品| 亚洲成人av电影在线| 久久伊人中文字幕| 在线观看av一区二区| 黄色日韩三级电影| 亚洲久草在线视频| 精品第一国产综合精品aⅴ| 97se狠狠狠综合亚洲狠狠| 蜜桃在线一区二区三区| 国产精品女上位| 欧美美女一区二区| 成人毛片老司机大片| 亚洲成人一区二区| 欧美国产精品v| 91麻豆精品国产91久久久使用方法 | 久久嫩草精品久久久精品一| 91香蕉国产在线观看软件| 男人的j进女人的j一区| 亚洲素人一区二区| 久久一区二区视频| 欧美日韩中文字幕精品| 成人一道本在线| 美女视频第一区二区三区免费观看网站| 国产精品伦理一区二区| 日韩欧美中文字幕一区| 色悠悠亚洲一区二区| 国产精品亚洲一区二区三区妖精| 亚洲第一综合色| 中文字幕亚洲区| 久久这里只有精品首页| 91精品国产综合久久久蜜臀图片| 成人黄色免费短视频| 久久国产精品一区二区| 亚洲影院免费观看| 国产精品麻豆一区二区| 久久女同精品一区二区| 91精品视频网| 色天天综合色天天久久| 国产1区2区3区精品美女| 久久99久久久久久久久久久| 亚洲国产人成综合网站| 国产精品国产自产拍高清av王其| 久久综合九色综合欧美98| 在线不卡中文字幕播放| 欧美视频一区二区三区在线观看| 成人激情视频网站| 国产suv一区二区三区88区| 蜜臀99久久精品久久久久久软件| 亚洲一区二区三区自拍| 亚洲日本va在线观看| 中文字幕国产一区二区| 久久久久久久久久久久久女国产乱 | 欧美中文字幕一二三区视频| 成人开心网精品视频| 国产一区二区三区电影在线观看| 日日摸夜夜添夜夜添亚洲女人| 亚洲理论在线观看| 亚洲欧美偷拍卡通变态| 国产精品久久久久影院| 中文字幕高清一区| 国产精品女主播在线观看| 欧美韩国一区二区| 中文无字幕一区二区三区| 久久久www免费人成精品|