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));
}
}
还没有评论,来说两句吧...