润乾报表通过JS自带函数来实现自动计算中的四舍五入
一、问题描述
由于润乾设计器的单元格的“显示格式”这个属性对数据进行相应位数的舍入是根据java中的java.text.DecimalFormat这个类来实现相关的需求。所以无法实现传统观念中的“四舍五入”。(原因见“显示格式的四舍六入五成双”一文)。
二、解决思路
虽然在单元格中使用round函数可以将其变为“四舍五入”,但是一些用户在处理填报类型的报表中,需要在单元格的自动计算时用到两个单元格相加后(如:${A1+B1})再对数值的舍入做处理(自动计算中仅能使用JS函数),这样润乾的round函数就失去了作用。本文使用js函数中的toFixed()来实现需求。
三、实现步骤
新建一张空白填报表,在任意单元格中,本例使用A1单元格,输入4.01,B1单元格,输入0.44。并在C3单元格的自动计算中写:${A1+B1}.toFixed(1),可以看到预览结果为4.5,而非单单使用显示格式#.#处理后的结果:4.4。
四、结尾总结
在使用润乾报表设计器V4版本时,需要注意单元格属性中的显示格式对数值的舍入并非是“四舍五入”,而是“四舍六入五成双”的规则。若忽视这点,会对终端的客户带来不便或是一些不必要的麻烦。