2012-04-16 13 views
1

我有具有以下表達式文本字段:格式iReport的字符串中的變量具有多個字段

$F{casNo} + " Total " + $P{chosenUom} + ": " + $V{total_COUNT} 

casNo是一個字符串,chosenUom是一個字符串。 total_COUNT是雙打的總和變量。變量顯示爲total_COUNT,但它有8-10位小數(1.34324255234),我需要的是沿着1.34線的東西。

這是我已經試過:

$F{casNo} + " Total " + $P{chosenUom} + ": " + new DecimalFormat("0.00").format($V{total_COUNT}).toString() 

任何幫助,將不勝感激


現在我只是在做基本的數學,但我希望有一個真正的解決方案,而不是解決方法

((int)($V{total_COUNT}*100.0))/100.0 
+0

爲什麼用你的DecimalFormat嘗試不爲你工作?它是否導致錯誤,格式錯誤等?這應該起作用。如果您收到錯誤,請檢查'$ V {total_COUNT}'的變量類型,並確保它不會爲空。 (此外,請注意,DecimalFormat默認使用RoundingMode.HALF_EVEN。) – kaliatech 2012-04-16 20:45:11

+0

我得到的錯誤是「[javax.servlet.ServletException:評估表達式的錯誤:源文本:$ F {casNo} +」Total「+ $ P {chosenUom } +「:」+ new DecimalFormat(「0.00」)。format($ V {total_COUNT})。toString()]「 - 但現在你提到它了,我想我可能有一些來自數據庫的空值。所有的數據都來自用戶,所以你永遠不知道它會是什麼。 – 2012-04-16 21:24:33

回答

0

您可能會將文本字段拆分爲兩個,其中一個包含除$ V {total_COUNT},a第二個僅包含$ V {total_COUNT},但Pattern屬性設置爲「#0.00」。

儘管如此,爲了防止不必要的換行和間距,您必須對佈局有點創意;例如,第一個文本字段可以是寬且右對齊的,而包含計數的文本字段可以左對齊並且足夠寬以容納格式化的數字。

2

您可以通過使用格式化的lline數字:

new DecimalFormat("###0.00").format(YOUR NUMBER) 
相關問題