四舍五入保留两位小数
方法①
BigDecimal b = new BigDecimal(double d);
double value = b.setScale(2, BigDecimal.ROUND_HELF_UP).doubleValue();
方法②
String df = new DecimalFormat("#.00");
String value = df.format(double d);
方法③
String value = String.format("%.2f", double d);
//%:小数点前任意位数,2:小数点后两位,f:浮点型
方法④
double value = Math.round(double d * 100) * 0.01d;
//0.01d:小数点后位数(四舍五入)
BigDecimal八种模式
| 类型 | 注释 |
|---|---|
| ROUND_UP | 绝对值最大的方向舍入,非0即进位 |
| ROUND_DOWN | 绝对值最小的方向输入,舍弃全部 |
| ROUND_CEILING | 正数入,负数舍(Math.round()使用此模式) |
| ROUND_FLOOR | 正数舍,负数入 |
| ROUND_HALF_UP | 四舍五入 |
| ROUND_HALF_DOWN | 五舍六入 |
| ROUND_HAIL_EVEN | 银行家舍入法(四舍六入,五前为奇数入否则舍) |
| ROUND_UNNECESSARY | 断言请求的操作具有精确的结果,因此不需要舍入。 |
ROUND_UP:多余位置非0进位
ROUND_UP正数:1.24
ROUND_UP负数:-1.24
ROUND_DOWN:舍弃多余的

ROUND_DOWN正数:1.23
ROUND_DOWN负数:-1.23
ROUND_CEILING:趋向最大值

ROUND_CEILING正数:1.24
ROUND_CEILING负数:-1.23
ROUND_FLOOR:趋向最小值

ROUND_FLOOR正数:1.23
ROUND_FLOOR负数:-1.24
ROUND_HALF_UP:四舍五入

ROUND_HALF_UP正数:1.24
ROUND_HALF_UP负数:-1.24

ROUND_HALF_UP正数:1.23
ROUND_HALF_UP负数:-1.23
ROUND_HALF_DOWN:五舍六入(保留小数时和ROUND_HALF_UP结果相同)

ROUND_HALF_DOWN正数:1.24
ROUND_HALF_DOWN负数:-1.24

ROUND_HALF_DOWN正数:1.1235
ROUND_HALF_DOWN负数:-1.1235

ROUND_HALF_DOWN正数:10.0
ROUND_HALF_DOWN负数:-10.0
ROUND_HAIL_EVEN:四舍六入,是五时前面为奇数则入,为偶数则舍

ROUND_HALF_EVEN正数:1.23
ROUND_HALF_EVEN负数:-1.23

ROUND_HALF_EVEN正数:1.24
ROUND_HALF_EVEN负数:-1.24

ROUND_HALF_EVEN正数:1.24
ROUND_HALF_EVEN负数:-1.24

ROUND_HALF_EVEN正数:1.23
ROUND_HALF_EVEN负数:-1.23
ROUND_UNNECESSARY:断言请求的操作具有精确的结果,因此不需要舍入。如果对获得精确结果的操作指定此舍入模式,则抛出ArithmeticException。


————————————————
版权声明:本文为CSDN博主「学习要趁早z」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42677452/article/details/118309126
最后
以上就是忧伤蜡烛最近收集整理的关于java四舍五入保留小数位的全部内容,更多相关java四舍五入保留小数位内容请搜索靠谱客的其他文章。
发表评论 取消回复