java 四舍六入五成双_显示格式的四舍六入五成双

一、问题描述

在使用快逸复杂报表设计" target="_blank" class="quieeLink1">设计器时,若单元格内的信息为数值,可能需要使用单元格的”显示格式”这个属性来对数据进行相应位数的舍入。由于该功能使用了java中的java.text.DecimalFormat这个类(使用了欧美金融业界常用的四舍六入无成双的规则)来实现相关的需求。其中有个陷阱(四舍六入无成双并不是bug)需要提醒使用该属性的用户。

二、解决思路

在使用显示格式的时候,同时去使用快逸的自带函数round()来将”四舍六入”变为”四舍五入”。

三、实现步骤

打开一张空白报表,在任意单元格中,本例使用A1单元格,输入4.45,并将其显示格式设置为#.#,可以看到预览结果为4.4,而非我们传统观念中的四舍五入后的结果:4.5。

imgServlet?fileID=a3eead81-e95a-4c9c-a97d-ac77ab502b12

imgServlet?fileID=63f74e36-c17d-4ba8-9931-a66e0e5b368e

这是因为显示格式该功能的实现使用了java.text.DecimalFormat,而java.text.DecimalFormat在设计的时候使用了”四舍六入五成双”的观念。若要使用四舍五入可以在单元格中使用round函数:=round(4.45,1),再次预览结果,发现结果变为4.5。

imgServlet?fileID=9837c75a-8e84-49ba-8526-1455de84e688

imgServlet?fileID=31d082be-355a-4364-a2cf-92015f381252

四、结尾总结

在使用快逸报表设计器V4版本时,需要注意单元格属性中的显示格式对数值的舍入并非是”四舍五入”,而是”四舍六入五成双”的规则。若忽视这点,会对终端的客户带来不便或是一些不必要的麻烦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值