美文网首页
BigDecimal和DecimalFormat 精准运算

BigDecimal和DecimalFormat 精准运算

作者: 瀚海江天 | 来源:发表于2017-02-10 14:01 被阅读0次

    java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。
    1.百科可以查看
    http://baike.baidu.com/link?url=yb8C8fR0QoO5E4X196Uo8Unh8jWpG21_Cxwdp47dJQPcIAM3japOgIaeiizCfAQM-Atl7vV6iHeSrv7Rp7yLZRKEZ2vd0a8WOq4jvfHrZtO

    2.BigDecimal extends number

    我们经常要将数字进行格式化,比如取2位小数,这是最常见的。Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子
    3.1 DecimalFormat extends NumberFormat extends Format
    3.2 importjava.text.DecimalFormat;
    publicclassTestNumberFormat{
      publicstaticvoidmain(String[]args){
        doublepi=3.1415927; //圆周率
        //取一位整数
        System.out.println(newDecimalFormat("0").format(pi));   //3
        //取一位整数和两位小数
        System.out.println(newDecimalFormat("0.00").format(pi)); //3.14
        //取两位整数和三位小数,整数不足部分以0填补。
        System.out.println(new DecimalFormat("00.000").format(pi));// 03.142
        //取所有整数部分
        System.out.println(newDecimalFormat("#").format(pi));   //3
        //以百分比方式计数,并取两位小数
        System.out.println(new DecimalFormat("#.##%").format(pi)); //314.16%
        longc=299792458;  //光速
        //显示为科学计数法,并取五位小数     System.out.println(newDecimalFormat("#.#####E0").format(c)); //2.99792E8
        //显示为两位整数的科学计数法,并取四位小数     System.out.println(newDecimalFormat("00.####E0").format(c)); //29.9792E7
        //每三位以逗号进行分隔。     System.out.println(newDecimalFormat(",###").format(c));   //299,792,458
        //将格式嵌入文本
        System.out.println(newDecimalFormat("光速大小为每秒,###米。").format(c));
      }
    }

    3.3 DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。上面的例子包含了差不多所有的基本用法,如果你想了解更多,请参考 DecimalFormat 类的文档

    相关文章

      网友评论

          本文标题:BigDecimal和DecimalFormat 精准运算

          本文链接:https://www.haomeiwen.com/subject/rjjgittx.html