java中Math.format_java.math中NumberFormat,Math,BigInteger和BigDecimal的简单用法

NumberFormat类:(public abstract class NumberFormat extends Format)

用java.text.NumberFormat类对输出的数字结果进行必要的格式化。

使用该类如下方法类实例化一个NumberFormat对象:

public static final NumberFormat getInstance()

然后用该对象调用如下方法可以格式化数字number(返回字符串对象):

public final String format(double number)

NumberFormat类有如下常用方法:

public void setMaximumFractionDigits(int newValue)//设置数的小数部分所允许的最大位数。

public void setMaximumIntegerDigits(int newValue)//设置数的整数部分所允许的最大位数。

public void setMinimumFractionDigits(int newValue)//设置数的小数部分所允许的最小位数。

public void setMinimumIntegerDigits(int newValue)//设置数的整数部分所允许的最小位数。

(更多方法及用法看JDK6API参考。)

Java提供了两个用于高精度计算的类:BigInteger和BigDecimal。虽然它们大体上属于“包装器类”的范畴,但两者都没有对应的基本类型。不过,这两个类包含的方法,提供的操作与对基本类型所能执行的操作相似。也就是说,能作用于int或float的操作,也同样能作用于BigInteger或BigDecimal。只不过必须以方法调用方式取代运算符方式来实现。由于这么做复杂了许多,所以运算速度会比较慢,相比而言,int和float是以速度取代了精度。

BigInteger支持任意精度的整数。也就是说,在运算中,可以准确地表示任何大小的整数值,而不会丢失任何信息。

常用方法:

abs()  //返回其值是此BigInteger的绝对值的BigInteger。

add(BigInteger val)  //返回其值为(this+val)的BigInteger。

subtract(BigInteger val)  //返回其值为(this-val)的BigInteger。

multiply(BigInteger val)  // 返回其值为(this*val)的BigInteger。

divide(BigInteger val)  //返回其值为(this/val)的BigInteger。

remainder(BigInteger val)  //返回其值为(this%val)的BigInteger。

compareTo(BigInteger val)  //将此BigInteger与指定的BigInteger进行比较。返回值1、0、-1分别表示大于、等于、小于

pow(int exponent)  //返回当前大数的exponent次幂。

toString()  //返回此BigInteger的十进制字符串表示形式。

toString(int radix)  //返回此BigInteger的给定基数(radix进制)的字符串表示形式。

1.BigInteger(大整数):

BigInteger bi1=new BigInteger("1234567890123456890");

BigInteger bi2=BigInteger.valueOf(123L);

bi1=bi1.add(bi2);//b1+b2

bi1=bi1.multiply(bi2);//b1*b2

bi1=bi1.subtract(bi2);//b1-b2

bi1=bi1.divide(bi2);// b1/b2

BigDecimal支持任何精度的定点数,例如,可以用它进行精确的货币运算。

2.BigDecimal(大浮点数):

BigDecimal bd = new BigDecimal("3.1415926");

bd = bd.setScale(2,BigDecimal.ROUND_DOWN);//取3.1415926小数点后面二位

附:对BigDecimal常用方法的归类

4f1150b881333f12a311ae9ef34da474.pngimportjava.math.BigDecimal; 

4f1150b881333f12a311ae9ef34da474.png

1fa987a29c6482f53d401256f96355eb.png

ca75c07623e1b494fee67e8f316fc310.gifpublicclassArith9b8a8a44dd1c74ae49c20a7cd451974e.png

d18c02628675d0a2c816449d98bda930.png

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**d18c02628675d0a2c816449d98bda930.png* 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 

d18c02628675d0a2c816449d98bda930.png* 确的浮点数运算,包括加减乘除和四舍五入。 

ecedf933ec37d714bd4c2545da43add2.png*/d18c02628675d0a2c816449d98bda930.png//默认除法运算精度d18c02628675d0a2c816449d98bda930.pngprivatestaticfinalintDEF_DIV_SCALE=10; 

d18c02628675d0a2c816449d98bda930.png    

d18c02628675d0a2c816449d98bda930.png//这个类不能实例化97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifprivateArith()9b8a8a44dd1c74ae49c20a7cd451974e.png

ecedf933ec37d714bd4c2545da43add2.png}d18c02628675d0a2c816449d98bda930.png

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**d18c02628675d0a2c816449d98bda930.png     * 提供精确的加法运算。 

d18c02628675d0a2c816449d98bda930.png     *@paramv1 被加数 

d18c02628675d0a2c816449d98bda930.png     *@paramv2 加数 

d18c02628675d0a2c816449d98bda930.png     *@return两个参数的和 

ecedf933ec37d714bd4c2545da43add2.png*/97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicstaticdoubleadd(doublev1,doublev2)9b8a8a44dd1c74ae49c20a7cd451974e.png

d18c02628675d0a2c816449d98bda930.png        BigDecimal b1=newBigDecimal(Double.toString(v1)); 

d18c02628675d0a2c816449d98bda930.png        BigDecimal b2=newBigDecimal(Double.toString(v2)); 

d18c02628675d0a2c816449d98bda930.pngreturnb1.add(b2).doubleValue(); 

ecedf933ec37d714bd4c2545da43add2.png    }97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**d18c02628675d0a2c816449d98bda930.png     * 提供精确的减法运算。 

d18c02628675d0a2c816449d98bda930.png     *@paramv1 被减数 

d18c02628675d0a2c816449d98bda930.png     *@paramv2 减数 

d18c02628675d0a2c816449d98bda930.png     *@return两个参数的差 

ecedf933ec37d714bd4c2545da43add2.png*/97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicstaticdoublesub(doublev1,doublev2)9b8a8a44dd1c74ae49c20a7cd451974e.png

d18c02628675d0a2c816449d98bda930.png        BigDecimal b1=newBigDecimal(Double.toString(v1)); 

d18c02628675d0a2c816449d98bda930.png        BigDecimal b2=newBigDecimal(Double.toString(v2)); 

d18c02628675d0a2c816449d98bda930.pngreturnb1.subtract(b2).doubleValue(); 

ecedf933ec37d714bd4c2545da43add2.png    }97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**d18c02628675d0a2c816449d98bda930.png     * 提供精确的乘法运算。 

d18c02628675d0a2c816449d98bda930.png     *@paramv1 被乘数 

d18c02628675d0a2c816449d98bda930.png     *@paramv2 乘数 

d18c02628675d0a2c816449d98bda930.png     *@return两个参数的积 

ecedf933ec37d714bd4c2545da43add2.png*/97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicstaticdoublemul(doublev1,doublev2)9b8a8a44dd1c74ae49c20a7cd451974e.png

d18c02628675d0a2c816449d98bda930.png        BigDecimal b1=newBigDecimal(Double.toString(v1)); 

d18c02628675d0a2c816449d98bda930.png        BigDecimal b2=newBigDecimal(Double.toString(v2)); 

d18c02628675d0a2c816449d98bda930.pngreturnb1.multiply(b2).doubleValue(); 

ecedf933ec37d714bd4c2545da43add2.png    }d18c02628675d0a2c816449d98bda930.png

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**d18c02628675d0a2c816449d98bda930.png     * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 

d18c02628675d0a2c816449d98bda930.png     * 小数点以后10位,以后的数字四舍五入。 

d18c02628675d0a2c816449d98bda930.png     *@paramv1 被除数 

d18c02628675d0a2c816449d98bda930.png     *@paramv2 除数 

d18c02628675d0a2c816449d98bda930.png     *@return两个参数的商 

ecedf933ec37d714bd4c2545da43add2.png*/97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicstaticdoublediv(doublev1,doublev2)9b8a8a44dd1c74ae49c20a7cd451974e.png

d18c02628675d0a2c816449d98bda930.pngreturndiv(v1,v2,DEF_DIV_SCALE); 

ecedf933ec37d714bd4c2545da43add2.png    }d18c02628675d0a2c816449d98bda930.png

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**d18c02628675d0a2c816449d98bda930.png     * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 

d18c02628675d0a2c816449d98bda930.png     * 定精度,以后的数字四舍五入。 

d18c02628675d0a2c816449d98bda930.png     *@paramv1 被除数 

d18c02628675d0a2c816449d98bda930.png     *@paramv2 除数 

d18c02628675d0a2c816449d98bda930.png     *@paramscale 表示表示需要精确到小数点以后几位。 

d18c02628675d0a2c816449d98bda930.png     *@return两个参数的商 

ecedf933ec37d714bd4c2545da43add2.png*/97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicstaticdoublediv(doublev1,doublev2,intscale)9b8a8a44dd1c74ae49c20a7cd451974e.png

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifif(scale<0)9b8a8a44dd1c74ae49c20a7cd451974e.png

d18c02628675d0a2c816449d98bda930.pngthrownewIllegalArgumentException( 

d18c02628675d0a2c816449d98bda930.png"The scale must be a positive integer or zero"); 

ecedf933ec37d714bd4c2545da43add2.png        }d18c02628675d0a2c816449d98bda930.png        BigDecimal b1=newBigDecimal(Double.toString(v1)); 

d18c02628675d0a2c816449d98bda930.png        BigDecimal b2=newBigDecimal(Double.toString(v2)); 

d18c02628675d0a2c816449d98bda930.pngreturnb1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); 

ecedf933ec37d714bd4c2545da43add2.png    }d18c02628675d0a2c816449d98bda930.png

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**d18c02628675d0a2c816449d98bda930.png     * 提供精确的小数位四舍五入处理。 

d18c02628675d0a2c816449d98bda930.png     *@paramv 需要四舍五入的数字 

d18c02628675d0a2c816449d98bda930.png     *@paramscale 小数点后保留几位 

d18c02628675d0a2c816449d98bda930.png     *@return四舍五入后的结果 

ecedf933ec37d714bd4c2545da43add2.png*/97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicstaticdoubleround(doublev,intscale)9b8a8a44dd1c74ae49c20a7cd451974e.png

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifif(scale<0)9b8a8a44dd1c74ae49c20a7cd451974e.png

d18c02628675d0a2c816449d98bda930.pngthrownewIllegalArgumentException( 

d18c02628675d0a2c816449d98bda930.png"The scale must be a positive integer or zero"); 

ecedf933ec37d714bd4c2545da43add2.png        }d18c02628675d0a2c816449d98bda930.png        BigDecimal b=newBigDecimal(Double.toString(v)); 

d18c02628675d0a2c816449d98bda930.png        BigDecimal one=newBigDecimal("1"); 

d18c02628675d0a2c816449d98bda930.pngreturnb.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); 

ecedf933ec37d714bd4c2545da43add2.png    }d18c02628675d0a2c816449d98bda930.png    

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**d18c02628675d0a2c816449d98bda930.png    * 提供精确的类型转换(Float) 

d18c02628675d0a2c816449d98bda930.png    *@paramv 需要被转换的数字 

d18c02628675d0a2c816449d98bda930.png    *@return返回转换结果 

ecedf933ec37d714bd4c2545da43add2.png*/97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicstaticfloatconvertsToFloat(doublev)9b8a8a44dd1c74ae49c20a7cd451974e.png

d18c02628675d0a2c816449d98bda930.png    BigDecimal b=newBigDecimal(v); 

d18c02628675d0a2c816449d98bda930.pngreturnb.floatValue(); 

ecedf933ec37d714bd4c2545da43add2.png    }d18c02628675d0a2c816449d98bda930.png    

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**d18c02628675d0a2c816449d98bda930.png* 提供精确的类型转换(Int)不进行四舍五入 

d18c02628675d0a2c816449d98bda930.png*@paramv 需要被转换的数字 

d18c02628675d0a2c816449d98bda930.png*@return返回转换结果 

ecedf933ec37d714bd4c2545da43add2.png*/97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicstaticintconvertsToInt(doublev)9b8a8a44dd1c74ae49c20a7cd451974e.png

d18c02628675d0a2c816449d98bda930.pngBigDecimal b=newBigDecimal(v); 

d18c02628675d0a2c816449d98bda930.pngreturnb.intValue(); 

ecedf933ec37d714bd4c2545da43add2.png}d18c02628675d0a2c816449d98bda930.png

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**d18c02628675d0a2c816449d98bda930.png* 提供精确的类型转换(Long) 

d18c02628675d0a2c816449d98bda930.png*@paramv 需要被转换的数字 

d18c02628675d0a2c816449d98bda930.png*@return返回转换结果 

ecedf933ec37d714bd4c2545da43add2.png*/97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicstaticlongconvertsToLong(doublev)9b8a8a44dd1c74ae49c20a7cd451974e.png

d18c02628675d0a2c816449d98bda930.pngBigDecimal b=newBigDecimal(v); 

d18c02628675d0a2c816449d98bda930.pngreturnb.longValue(); 

ecedf933ec37d714bd4c2545da43add2.png}d18c02628675d0a2c816449d98bda930.png

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**d18c02628675d0a2c816449d98bda930.png* 返回两个数中大的一个值 

d18c02628675d0a2c816449d98bda930.png*@paramv1 需要被对比的第一个数 

d18c02628675d0a2c816449d98bda930.png*@paramv2 需要被对比的第二个数 

d18c02628675d0a2c816449d98bda930.png*@return返回两个数中大的一个值 

ecedf933ec37d714bd4c2545da43add2.png*/97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicstaticdoublereturnMax(doublev1,doublev2)9b8a8a44dd1c74ae49c20a7cd451974e.png

d18c02628675d0a2c816449d98bda930.pngBigDecimal b1=newBigDecimal(v1); 

d18c02628675d0a2c816449d98bda930.pngBigDecimal b2=newBigDecimal(v2); 

d18c02628675d0a2c816449d98bda930.pngreturnb1.max(b2).doubleValue(); 

ecedf933ec37d714bd4c2545da43add2.png}d18c02628675d0a2c816449d98bda930.png

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**d18c02628675d0a2c816449d98bda930.png* 返回两个数中小的一个值 

d18c02628675d0a2c816449d98bda930.png*@paramv1 需要被对比的第一个数 

d18c02628675d0a2c816449d98bda930.png*@paramv2 需要被对比的第二个数 

d18c02628675d0a2c816449d98bda930.png*@return返回两个数中小的一个值 

ecedf933ec37d714bd4c2545da43add2.png*/97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicstaticdoublereturnMin(doublev1,doublev2)9b8a8a44dd1c74ae49c20a7cd451974e.png

d18c02628675d0a2c816449d98bda930.pngBigDecimal b1=newBigDecimal(v1); 

d18c02628675d0a2c816449d98bda930.pngBigDecimal b2=newBigDecimal(v2); 

d18c02628675d0a2c816449d98bda930.pngreturnb1.min(b2).doubleValue(); 

ecedf933ec37d714bd4c2545da43add2.png}d18c02628675d0a2c816449d98bda930.png

97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gif/** *//**d18c02628675d0a2c816449d98bda930.png* 精确对比两个数字 

d18c02628675d0a2c816449d98bda930.png*@paramv1 需要被对比的第一个数 

d18c02628675d0a2c816449d98bda930.png*@paramv2 需要被对比的第二个数 

d18c02628675d0a2c816449d98bda930.png*@return如果两个数一样则返回0,如果第一个数比第二个数大则返回1,反之返回-1 

ecedf933ec37d714bd4c2545da43add2.png*/97e794c86028c5f5b5461ae5ef440a4c.png

3c6cafce68eb941a00f1998f1d3d3aa6.gifpublicstaticintcompareTo(doublev1,doublev2)9b8a8a44dd1c74ae49c20a7cd451974e.png

d18c02628675d0a2c816449d98bda930.pngBigDecimal b1=newBigDecimal(v1); 

d18c02628675d0a2c816449d98bda930.pngBigDecimal b2=newBigDecimal(v2); 

d18c02628675d0a2c816449d98bda930.pngreturnb1.compareTo(b2); 

ecedf933ec37d714bd4c2545da43add2.png}8f1ba5b45633e9678d1db480c16cae3f.png}

Math类:

java.lang.Math类中包含基本的数字操作,如指数、对数、平方根和三角函数。

java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(BigDecimal)算法的类java.lang.Math类中包含E和PI两个静态常量,以及进行科学计算的类(static)方法,可以直接通过类名调用。

public static final Double E = 2.7182818284590452354

public static final Double PI = 3.14159265358979323846

public static long abs(double x):传回 x 的绝对值。X也可int long float

public static long sin(double x): 传回x径度的正弦函数值

public static long cos(double x):传回x径度的余弦函数值

public static long tan(double x): 传回x径度的正切函数值

public static long asin(double x):传回x值的反正弦函数值。

public static long acos(double x):传回x值的反余弦函数值。

public static long atan(double x):传回x值的反正切函数值。

public static long atan2(double x, double y):传回极坐标(polar)的θ值

public static long floor(double x):传回不大于x的最大整数值

public static long ceil(double x):传回不小于x的最小整数值。

public static long exp(double x):传回相当于ex值

public static long log(double x):传回x的自然对数函数值

public static long max(double x,double y):传回x、y较大数

public static long min(double x,double y):传回x、y较小数

public static long pow(double x,double y):传回x的y次幂值

public static long sqrt(double x): 传回x开平方值

public static long rint(double x):传回最接近x的整数值

public static long round(double x):传回x的四舍五入值

public static long toDegrees(double angrad):传回将angrad径度转换成角度

public static long toRadians(double angdeg): 传回将angdeg角度转换成径度

public static long random():传回随机数值,产生一个0-1之间的随机数(不包括0和1)

posted on 2009-09-05 10:14 飞翔天使 阅读(5030) 评论(0)  编辑  收藏 所属分类: java

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值