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); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。