数字的格式化在解决实际问题时使用非常普遍,如显示某超市的商品价格,需要保留两位小数。Java 主要对浮点型数据进行数字格式化操作,其中浮点型数据包括 double 和 float 型数据,在 java 中常用以下方法:
目录
// 方法一 :DecimalFormat转换最简便 #.00 表示两位小数
1. 使用DecimalFormat和BigDecimal格式化数字
2. 使用String.format("%.2f",dbstr)
以下程序中使用5种方式来保留小数位数
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class DecimalFormatDemo {
public static void main(String[] args) {
double data = 111231.4585;
// 方法一 :DecimalFormat转换最简便 #.00 表示两位小数
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(data));
// 方法二:模仿C语言的输出方式
System.out.printf("%.2f\n", data);
// 方法三 String.format打印最简便
// %.2f %.表示 小数点前任意位数 2 表示两位小数 格式后的f表示浮点型
System.out.println(String.format("%.2f", data));
// 方法四 商业计算中中提供精确计算
BigDecimal bg = new BigDecimal(data);
double f1 = bg.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1);
// 方法五 使用格式化数字类 NumberFormat
// 使用 getInstance 或 getNumberInstance 来获取常规数值格式。
NumberFormat nf = NumberFormat.getNumberInstance();
// 设置显示的数字位数 为格式化对象设定小数点后的显示的最多位,显示的最后位四舍五入
nf.setMaximumFractionDigits(2);
nf.setGroupingUsed(false); //去掉千分位符号 true则显示千分位符号
System.out.println(nf.format(data));
}
}
转自老师课件
来源地址:https://blog.csdn.net/m0_74000148/article/details/130737306