加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-14 03:32:23 所属栏目:大数据 来源:网络整理
导读:NumberFormat类 ①NumberFormat类是Format的子类,同时也是一个抽象类。 ②NumberFormat类数字格式基本都是根据区域码所固定的,灵活性较差。 DecimalFormat ①DecimalFormat类是NumberFormat类的子类。 ②DecimalFormat类可以自定义格式化操作,操作更简单

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.000u00A4",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);
    }
 
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读