Java输出时,经常会要求保留指定的小数位数,一般有以下几个常用方法:
①使用DecimalFormat类对象,使用该类,需要导入java.text.DecimalFormat,具体如下:
import java.text.*;
DecimalFormat df= new DecimalFormat("##.00");
double d = 3.0;
String str = df.format(d);
System.out.println(str);
以上输出结果为3.00,保留两位小数。
②如果仅用于一次输出,方法①中的代码可缩写为:
import java.text.*;
double d = 3.0;
System.out.println( new DecimalFormat("00.00").format(d) );
以上输出显示03.00
DecimalFormat中的占位符“#”和“0”之间的区别:
A. “#”占位符表示如果有相应位置上的字符则显示,否则不显示,如方法①所示;
缺点:如果有DecimalFormat("##.00").format(0.5); 显示结果为.50
此时,应该用DecimalFormat("#0.00").format(0.5);代替,输出结果为0.50;或者考虑用方法③
B. “0”占位符表示如果有相应位置上的字符则显示,否则用0替换,如方法②所示。
double db = 3;
String str = String.format("%.2f", db);
以上输出结果为3.00,“%.2f”表示任意位整数部分+保留两位小数