一、問題描述
在使用快逸複雜報表設計" target="_blank" class="quieeLink1">設計器時,若單元格内的資訊為數值,可能需要使用單元格的”顯示格式”這個屬性來對資料進行相應位數的舍入。由于該功能使用了java中的java.text.DecimalFormat這個類(使用了歐美金融業界常用的四舍六入無成雙的規則)來實作相關的需求。其中有個陷阱(四舍六入無成雙并不是bug)需要提醒使用該屬性的使用者。
二、解決思路
在使用顯示格式的時候,同時去使用快逸的自帶函數round()來将”四舍六入”變為”四舍五入”。
三、實作步驟
打開一張空白報表,在任意單元格中,本例使用A1單元格,輸入4.45,并将其顯示格式設定為#.#,可以看到預覽結果為4.4,而非我們傳統觀念中的四舍五入後的結果:4.5。

這是因為顯示格式該功能的實作使用了java.text.DecimalFormat,而java.text.DecimalFormat在設計的時候使用了”四舍六入五成雙”的觀念。若要使用四舍五入可以在單元格中使用round函數:=round(4.45,1),再次預覽結果,發現結果變為4.5。
四、結尾總結
在使用快逸報表設計器V4版本時,需要注意單元格屬性中的顯示格式對數值的舍入并非是”四舍五入”,而是”四舍六入五成雙”的規則。若忽視這點,會對終端的客戶帶來不便或是一些不必要的麻煩。