星星之火-JAVA保留小数点位数

本文最后更新于:December 3, 2021 pm

积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里,不积小流无以成江海。齐骥一跃,不能十步,驽马十驾,功不在舍。面对悬崖峭壁,一百年也看不出一条裂缝来,但用斧凿,能进一寸进一寸,能进一尺进一尺,不断积累,飞跃必来,突破随之。


目录

1.String.format()

1
2
3
4
5
6
7
8
9
10
11
12
13
double a = 123.456789;
double b = 123.444444;
String sa = String.format("%.2f",a);
System.out.println(sa);
String sb = String.format("%.2f",b);
System.out.println(sb);

//输出
123.46
123.44

//简写
System.out.println(String.format("%.2f",a));

2.DecimalFormat的format方法

1
2
3
4
5
6
7
8
9
10
11
12
13
double a = 123.456789;
double b = 123.444444;
DecimalFormat dfa = new DecimalFormat("0.00");
System.out.println(dfa.format(a));
DecimalFormat dfb = new DecimalFormat("0.00");
System.out.println(dfb.format(b));

//输出
123.46
123.44

//简写
System.out.println(new DecimalFormat("0.00").format(a));

DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。如:

1
2
3
4
5
6
7
8
9
double a = 123.00;
DecimalFormat dfa = new DecimalFormat("#.##");
System.out.println(dfa.format(a));
DecimalFormat dfb = new DecimalFormat("0.00");
System.out.println(dfb.format(a));

//输出
123
123.00

3.BigDecimal的setScale方法(了解)

1
2
3
4
double f = 111231.5585;
BigDecimal bg = new BigDecimal(f);
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); //setScale已经过时
System.out.println(f1);

4.NumberFormat的setMaximumFractionDigits方法(了解)

1
2
3
4
double f = 111231.5585;
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(f));

本文作者: 墨水记忆
本文链接: https://tothefor.com/DragonOne/203889013.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!