java - BigDecimal 和舍入
问题描述
我一直在这里寻找答案:四舍五入和BigDecimal,但我遇到了麻烦。有人可以帮忙吗?
下面除法的实际结果是 11.469...
BigDecimal a = new BigDecimal(0.32);
BigDecimal b = new BigDecimal(2.79);
BigDecimal diffPercent = (a.divide(b, 2, RoundingMode.HALF_EVEN)).multiply(HUNDRED); // 11.00
BigDecimal diffPercent = (a.divide(b, 4, RoundingMode.HALF_EVEN)).multiply(HUNDRED); // 11.4700
我怎样才能得到 11.47(两位小数)?
解决方案
BigDecimal bg = new BigDecimal("11.468");
MathContext mc = new MathContext(3); // 3 precision
// bg1 is rounded using mc
final BigDecimal round = bg.round(mc, RoundingMode.CEILING);
System.out.println(round);
发布,因为这是如何舍入的另一个示例
推荐阅读
- laravel - 验证 PHPUnit 中的变量
- javascript - 计算mongodb中对象内的键数
- css - 悬停时的换行动画(不完整)
- python - 期待python中的二维数组错误
- c++ - 在 Vulkan 中渲染时 0x69FD41DC (nvoglv32.dll) 出现未处理的异常
- html - 在导航栏和横幅之间添加颜色(前端)
- java - 无法在spring mvc中查看欢迎页面
- c++ - O2 优化级别中断程序工作
- python - “无法使用 `eval()` 评估张量:未注册默认会话”同时使用带有 Estimator API 的自定义 SessionRunHook
- c# - WPF 从动态集 ListViewItem 中获取 MouseHover 事件