筆記:
Math類 * java.lang.Math提供了一系列靜態方法用於科學計算;其方法的參數和返回值類型一般為double型。 * abs 絕對值 * acos,asin,atan,cos,sin,tan 三角函數 * sqrt 平方根 * pow(double a,doble b) a的b次冪 * log 自然對數 * exp e為底指數 * max(double a,double b) * min(double a,double b) * random() 返回0.0到1.0的隨機數 * long round(double a) double型數據a轉換為long型(四舍五入) * toDegrees(double angrad) 弧度—>角度 * toRadians(double angdeg) 角度—>弧度 * ------------------------------------------------------ BigDecimal類 一般的Float類和Double類可以用來做科學計算或工程計算,但在商業計算中,要求數字精度比較高,故用到java.math.BigDecimal類。BigDecimal類支持任何精度的定點數。 構造器 public BigDecimal(double val) public BigDecimal(String val) 常用方法 public BigDecimal add(BigDecimal augend) public BigDecimal subtract(BigDecimal subtrahend) public BigDecimal multiply(BigDecimal multiplicand) public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) //Scale 表示保留的位數, 在roundingMode中,ROUND_HALF_UP表示向“最接近的”數字舍入,如果與兩個相鄰數字的距離相等,則為向上舍入的舍入模式。 ROUND_HALF_DOWN , 舍棄部分> 0.5進1 ROUND_HALF_EVEN 銀行家舍入法 ,向“最接近的”數字舍入,如果與兩個相鄰數字的距離相等,則向相鄰的偶數舍入。 --------------------------------------------------------------------- public class Test_Math { @Test public void testBigInteger(){ BigInteger bi = new BigInteger("12433241123"); BigDecimal bd = new BigDecimal("12435.351"); BigDecimal bd2 = new BigDecimal("11"); System.out.println(bi); //System.out.println(bd.divide(bd2)); System.out.println(bd.divide(bd2,BigDecimal.ROUND_HALF_UP)); //>=0.5進1 System.out.println(bd.divide(bd2,15,BigDecimal.ROUND_HALF_DOWN)); //>0.5進1 System.out.println(bd.divide(bd2,15,BigDecimal.ROUND_HALF_EVEN)); } }
