java 控制输出小数位数

柔光的暖阳◎ 2022-06-03 06:44 818阅读 0赞

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Scanner;

public class Main {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
double a = sc.nextDouble();

//一
System.out.printf(“%.05f\n”, a);

//2 Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子

/*
* 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));

  DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0
表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。
* */
DecimalFormat b = new DecimalFormat(“#0.00000”);
System.out.println(b.format(a));

//3 BigDecimal型数据的小数点控制输出
// BigDecimal中的setScale方法的第一个参数就
//是我们要指定的精度位数,这里我设为5位小数,但记住,如果
//舍入后的结果后面几位小数是0,则会被省略,就是说0没被输出

/*
* BigDecimal.setScale()方法用于格式化小数点
setScale(1)表示保留一位小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍
* */
BigDecimal bg = new BigDecimal(a);
double c = bg.setScale(5,BigDecimal.ROUND_HALF_UP).doubleValue();
//将BigDecimal对象转换成相应的基本数据类型的变量,可以使用floatValue(),doubleValue()等方法。
System.out.println(c);

//4
/*
* setMinimumIntegerDigits(3);//设置整数部分至少为3位
setMaximumFractionDigits(5);//设置小数点后面尾数为5
setMinimumFractionDigits(int)
setMaximumIntegerDigits(int)

  1. 创建格式化器(默认地区Local格式):
  2. NumberFormat.getNumberInstance();
  3. NumberFormat.getCurrencyInstance();
  4. NumberFormat.getPercentInstance();

* */
NumberFormat d = NumberFormat.getNumberInstance();
d.setMaximumFractionDigits(5);
System.out.println(d.format(a));
}

}

发表评论

表情:
评论列表 (有 0 条评论,818人围观)

还没有评论,来说两句吧...

相关阅读