在Java中格式化双精度至2位小数的7种方法

在这篇文章中,我们将看到如何格式化双精度到小数点后两位。
有多种格式化方式 双精度到小数点后两位。让 ’s go through them.
使用字符串’s 格式() method
您也可以使用String’s 静态的 method 格式()
to print 双精度到小数点后两位. This method is similar to 系统.out.printf
.
这是一个例子:
1 2 3 4 5 6 7 8 9 10 11 |
包 组织.Arpit.爪哇2blog; 上市 类 串FromatformatDouble { 上市 静态的 虚空 主要(串[] args) { 双 d = 2.456534; 系统.出.打印(“双精度最多两位小数::”+串.格式("%.2f",d)); } } |
输出:
使用System.out.printf
如果要打印两位数到两位小数,这是在控制台上打印两位数到两位小数的最佳方法。
这是一个例子:
1 2 3 4 5 6 7 8 9 10 11 |
包 组织.Arpit.爪哇2blog; 上市 类 PrintfformatDouble { 上市 静态的 虚空 主要(串[] args) { 双 d = 2.456534; 系统.出.打印(“双精度最多两位小数:%。2f”,d); } } |
输出:
使用格式化程序
您可以使用爪哇.util.Formatter
’s 格式()
method to 格式 双精度到小数点后两位. This is similar to 系统.out.printf
method.
这是一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
包 组织.Arpit.爪哇2blog; 进口 爪哇.实用程序.格式化程序; 上市 类 格式化程序formatDouble { 上市 静态的 虚空 主要(串[] args) { 双 d = 2.456534; 格式化程序 格式化程序 = 新 格式化程序(); 格式化程序.格式("%.2f", d); 系统.出.打印(“双精度最多两位小数::” + 格式化程序.toString()); } } |
输出:
使用BigDecimal
您可以将double转换为 大十进制 和使用大十进制
’s setScale()
method to 格式 双精度到小数点后两位 您可以使用舍入模式 指定舍入行为。
这是一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
包 组织.Arpit.爪哇2blog; 进口 爪哇.数学.大十进制; 进口 爪哇.数学.舍入模式; 进口 爪哇.文本.小数格式; 上市 类 大十进制formatDouble { 上市 静态的 虚空 主要(串[] args) { 双 d = 2.456534; 大十进制 d =新 大十进制(d).setScale(2,舍入模式.HALF_DOWN); 系统.出.打印(“双精度最多两位小数::”+d .双Value()); // 您可以使用RoundingMode to 回合 双 Up or Down 大十进制 d Down=新 大十进制(d).setScale(2,舍入模式.下); 系统.出.打印("加倍至小数点后两位- 舍入模式.DOWN: "+d Down.双Value()); 大十进制 d Up=新 大十进制(d).setScale(2,舍入模式.向上); 系统.出.打印("加倍至小数点后两位- 舍入模式.UP: "+d Up.双Value()); } } |
输出:
加倍至小数点后两位–RoundingMode.DOWN:2.45
加倍至小数点后两位–RoundingMode.UP:2.46
使用DecimalFormat
小数格式 can be used by providing 格式ting Pattern to 格式 双精度到小数点后两位. 您可以使用舍入模式 指定舍入行为。
这是一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
包 组织.Arpit.爪哇2blog; 进口 爪哇.数学.舍入模式; 进口 爪哇.文本.小数格式; 上市 类 小数格式formatDouble { 上市 静态的 虚空 主要(串[] args) { 小数格式 df=新 小数格式(“#。##”); 双 d = 2.456534; 系统.出.打印(“双精度最多两位小数::”+df.格式(d)); // 您可以使用RoundingMode to 回合 双 Up or Down df.setRoundingMode(舍入模式.下); 系统.出.打印("加倍至小数点后两位- 舍入模式.DOWN: "+df.格式(d)); df.setRoundingMode(舍入模式.向上); 系统.出.打印("加倍至小数点后两位- 舍入模式.UP: "+df.格式(d)); } } |
输出:
加倍至小数点后两位–RoundingMode.DOWN:2.45
加倍至小数点后两位–RoundingMode.UP:2.46
使用NumberFormat
您也可以使用数字格式
’s setMaximumFractionDigits()
to put constraint on number by decimal places 和使用its 格式()
method to 格式 双精度到小数点后两位.
这是一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
包 组织.Arpit.爪哇2blog; 进口 爪哇.文本.数字格式; 进口 爪哇.实用程序.格式化程序; 上市 类 数字格式formatDouble { 上市 静态的 虚空 主要(串[] args) { 双 d1 = 2.009; 双 d2 = 2.979; 数字格式 nf= 数字格式.getInstance(); nf.setMaximumFractionDigits(2); 系统.出.打印(“双精度d1最多保留两位小数:” +nf.格式(d1)); 系统.出.打印(“ 双 d2最多保留小数点后2位:” +nf.格式(d2)); } } |
输出:
双倍d2(最多2个小数位):2.98
使用Apache公共库
您可以使用精确
’s 回合()
method to 格式 双精度到小数点后两位. 精确
类 belongs to Apache common’s common-math3
library.
Add the following 依赖 to pom.xml
.
1 2 3 4 5 6 7 |
<dependency> <groupId>组织.apache.commons</groupId> <artifactId>Commons-Math3</artifactId> <version>3.6.1</version> </dependency> |
您可以在以下位置找到Commons-math的版本 这里.
这是一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
包 组织.Arpit.爪哇2blog; 进口 组织.阿帕奇.公地.数学3.实用程序.精确; 上市 类 ApacheCommonPrecisionMain { 上市 静态的 虚空 主要(串[] args) { 双 d= 2.456534; 系统.出.打印(“双精度最多两位小数::” + 精确.回合(d,2)); } } |
输出:
那’关于如何将双精度格式设置为两位小数位