Java保留n位小数输出的几种方法

一.四舍五入并保留两位小数

1.1printf()

double x = 8.055;
System.out.printf("%.2f\n",x);//8.06

1.2format()

double x = 8.055;
System.out.format("%.2f\n",x);//8.06

1.3format()方法将double型转换为String型再输出

double x = 8.055;
String s = String.format("%.2f", x);
System.out.println( s );

1.4创建Formatter类的对象

import java.util.Formatter;//不要忘了在类的外面导入这个包

Formatter a = new Formatter(System.out);
double x = 8.055;
a.format("%.2f\n", x);//8.06
a.close();//关闭a

二、不四舍五入直接保留两位小数

2.1创建DecimalFormat类的对象

import java.text.NumberFormat;

NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);//不足两位不补0,超过两位部分的自动舍去
double x = 8.055;
double y = 8.5;
System.out.println(nf.format(x));//8.05
System.out.println(nf.format(y));//8.5

2.2创建NumberFormat对象

import java.text.NumberFormat;

NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);//不足两位不补0,超过两位部分的自动舍去
double x = 8.055;
double y = 8.5;
System.out.println(nf.format(x));//8.05
System.out.println(nf.format(y));//8.5

2.2.1setMaximumFractionDigits(2)最多保留两位小数

import java.text.NumberFormat;

NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);//不足两位不补0,超过两位部分的自动舍去
double x = 8.055;
double y = 8.5;
System.out.println(nf.format(x));//8.05
System.out.println(nf.format(y));//8.5

2.2.2setMinimumFractionDigits(2)至少保留两位小数

import java.text.NumberFormat;

NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMinimumFractionDigits(2);//不足两位自动补0,超过两位的部分不舍去
double x = 8.055;
double y = 8.5;
System.out.println(nf.format(x));//8.055
System.out.println(nf.format(y));//8.50

你可能感兴趣的:(Java,java,开发语言)