谈谈-----数字格式化操作与大数(整数、浮点数)操作

来源:互联网 发布:linux删除用户和用户组 编辑:程序博客网 时间:2024/06/17 18:58

NumberFormat类

①NumberFormat类是Format的子类,同时也是一个抽象类。

②NumberFormat类数字格式基本都是根据区域码所固定的,灵活性较差。

DecimalFormat

①DecimalFormat类是NumberFormat类的子类。

②DecimalFormat类可以自定义格式化操作,操作更简单。

NumberFormat类进行数字的格式化操作:

package demo; import java.text.NumberFormat;import java.util.Locale; public class NumberFormatDem001 {          /**          * @param args          */         publicstatic void main(String[] args) {                   //TODO Auto-generated method stub                   NumberFormatnf = null;                   nf= NumberFormat.getInstance(); // 得到默认的数字格式显示                   System.out.println("格式化之后的数字:"+ nf.format(1000000));                   System.out.println("格式化之后的数字:"+ nf.format(1000.345));         } }

DecimalFormat类进行格式化数字:

package demo; import java.text.DecimalFormat; public classFormatDemo {    public void format1(String pattern,doublevalue) {        DecimalFormatdf = null;                // 声明一个DecimalFormat对象        df= newDecimalFormat(pattern);        Stringstr = df.format(value);        System.out.println("使用" + pattern + "格式化数字" + value + ": " + str);    }}

package demo; public classNumberFormatDemo02 {     /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        FormatDemodemo = newFormatDemo();        demo.format1("###,###.###",111222.34567);        demo.format1("000,000.000",11222.34567);        demo.format1("###,###.###\u00A4",111222.34567);        demo.format1("000,000.000\u00A4",11222.34567);        demo.format1("##.###%",0.345678);                  // 使用百分数形式        demo.format1("00.###%",0.0345678);                 // 使用百分数形式        demo.format1("###.###\u2030",0.345678);            // 使用千分数形式    } }

BigInteger类

①表示大整数类,定义在java.math包中

②当一个整型数据超过了整数的最大类型长度long,数据无法装入,可以使用它来进行操作。

BigDecimal类

①主要针对需要准确计算精度的数字使用。

②对于超过double类型的浮点数也能进行相关操作。

BigInteger类的使用:

package demo; import java.math.BigInteger; public classBigIntegerDemo01 {     /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        BigIntegerbi1 = newBigInteger("123456789");           // 定义BigInteger对象        BigIntegerbi2 = newBigInteger("987654321");           // 定义BigInteger对象        System.out.println("加法操作:" + bi2.add(bi1));         // 加法操作        System.out.println("减法操作:" + bi2.subtract(bi1));        // 减法操作        System.out.println("乘法操作:" + bi2.multiply(bi1));        // 乘法操作        System.out.println("除法操作:" + bi2.divide(bi1));          // 除法操作        System.out.println("最大值:" + bi2.max(bi1));               // 求出最大数        System.out.println("最小值:" + bi2.min(bi1));               // 求出最小数        BigIntegerresult[] = bi2.divideAndRemainder(bi1);      // 除法操作        System.out.println("商是:" + result[0] + ";余数是:" + result[1]);    } }


BigDecimal类的使用:

package demo; import java.math.BigDecimal; public classMyMath {    public static double add(double d1, double d2) {        // 进行加法操作        BigDecimalb1 = newBigDecimal(d1);        BigDecimalb2 = newBigDecimal(d2);        returnb1.add(b2).doubleValue();    }    public static double sub(double d1, double d2) {        // 进行减法操作        BigDecimalb1 = newBigDecimal(d1);        BigDecimalb2 = newBigDecimal(d2);        returnb1.subtract(b2).doubleValue();    }    public static double mul(double d1, double d2) {        // 进行乘法操作        BigDecimalb1 = newBigDecimal(d1);        BigDecimalb2 = newBigDecimal(d2);        return b1.multiply(b2).doubleValue();    }    public static double div(double d1, double d2, int len) {       // 进行除法操作        BigDecimalb1 = newBigDecimal(d1);        BigDecimalb2 = newBigDecimal(d2);        return b1.divide(b1, len,BigDecimal.ROUND_HALF_UP).doubleValue();    }    public static double round(double d, int len) {        BigDecimalb1 = newBigDecimal(d);        BigDecimalb2 = newBigDecimal(1);        // 任何一个数字除以1都是原数字        // ROUND_HALF_UP是BigDecimal的一个常量,表示进行四舍五入的操作        return b1.divide(b2, len,BigDecimal.ROUND_HALF_UP).doubleValue();    }}
package demo; import java.math.BigDecimal; public classBigDecimalDemo01 {     /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        System.out.println("加法运算:" + MyMath.round(MyMath.add(10.345,3.333), 1));        System.out.println("乘法运算:" + MyMath.round(MyMath.mul(10.345,3.333), 3));        System.out.println("除法运算:" + MyMath.div(10.345, 3.333, 3));        System.out.println("减法运算:" + MyMath.round(MyMath.sub(10.345,3.333), 3));        BigDecimalb1 = newBigDecimal(3.456);    } }


 

 

0 0
原创粉丝点击