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

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",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,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));
        System.out.println("除法运算:" + MyMath.div(10.345,3.333,3));
        System.out.println("减法运算:" + MyMath.round(MyMath.sub(10.345,3));
        BigDecimalb1 = newBigDecimal(3.456);
    }
 
}

相关文章

自1998年我国取消了福利分房的政策后,房地产市场迅速开展蓬...
文章目录获取数据查看数据结构获取数据下载数据可以直接通过...
网上商城系统MySql数据库设计
26个来源的气象数据获取代码
在进入21世纪以来,中国电信业告别了20世纪最后阶段的高速发...