java 控制输出小数位数

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)
              
                创建格式化器(默认地区Local格式):
    NumberFormat.getNumberInstance();
    NumberFormat.getCurrencyInstance();
    NumberFormat.getPercentInstance();
   * */
  NumberFormat d = NumberFormat.getNumberInstance();
  d.setMaximumFractionDigits(5);
  System.out.println(d.format(a));
 }
}
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值