一般有4种方法,下面进行简单总结。
1.BigDecimal.setScale(int newScale,RoundingMode roundingMode)
(1)语法
参数newScale:保留的小数位数
roundingMode:保留模式,包括
BigDecimal.ROUND_DOWN :直接删除
BigDecimal.ROUND_UP :进位
BigDecimal.ROUND_HALF_UP:四舍五入
BigDecimal.ROUND_HALF_DOWN:若舍弃部分>.5,则作ROUND_UP; 否则,作ROUND_DOWN。
更详尽的可参考此博:https://blog.csdn.net/alanzyy/article/details/8465098
(2)代码
BigDecimal a = new BigDecimal("3.14159265358979323").setScale(2,BigDecimal.ROUND_DOWN);
System.out.println(a);//输出3.14
BigDecimal b = new BigDecimal("3.14159265358979323").setScale(2,BigDecimal.ROUND_UP);
System.out.println(b);//输出3.15
BigDecimal c = new BigDecimal("3.14159265358979323").setScale(3,BigDecimal.ROUND_HALF_UP);
System.out.println(c);//输出3.142
BigDecimal d = new BigDecimal("3.1415").setScale(3,BigDecimal.ROUND_HALF_DOWN);
System.out.println(d);//输出3.141
View Code
2.String.format()
double num = 3.14159265358979323;
System.out.println(String.format("%.2f", num));//输出3.14
View Code
3.DecimalFormat.format()
double num = 3.14159265358979323
DecimalFormat decimalFormat = new DecimalFormat("#.00");
System.out.println( decimalFormat.format(num));//输出3.14
4.NumberFormat.format()
1 double num = 3.14159265358979323;2 NumberFormat numberFormat = NumberFormat.getNumberInstance(); numberFormat.setMaximumFractionDigits(2);3 System.out.println( numberFormat.format(num));//输出3.14
最后
以上就是贪玩皮卡丘最近收集整理的关于java小数精确_Java有关浮点数精度——指定精确小数位的全部内容,更多相关java小数精确_Java有关浮点数精度——指定精确小数位内容请搜索靠谱客的其他文章。
发表评论 取消回复