我在做報告,我需要精確的小數值。一個數字的值可以是2位小數,而數字的值可以是10.如果我將小數位範圍設置爲10個位置,那麼該列總是會顯示10個小數位,其中大部分爲0。如果它們存在,我該如何忽略數值中的0?比如我喜歡的數據顯示如下:如何忽略水晶報表中的零小數位數值
123.24
98.234
1212.678432
代替:
123.2400000000
98.2340000000
1212.6784320000
我在做報告,我需要精確的小數值。一個數字的值可以是2位小數,而數字的值可以是10.如果我將小數位範圍設置爲10個位置,那麼該列總是會顯示10個小數位,其中大部分爲0。如果它們存在,我該如何忽略數值中的0?比如我喜歡的數據顯示如下:如何忽略水晶報表中的零小數位數值
123.24
98.234
1212.678432
代替:
123.2400000000
98.2340000000
1212.6784320000
執行以下操作:
粘貼下面的代碼,並確保改變{myproc的; 1.col1},以反映你的程序/列:
stringVar number := ToText({myproc;1.col1}, 8);
while (right(number, 1) = "0") do
number := left(number, len(number) - 1);
len(number) - InStr(number, ".");
謝謝。我會在一小時內嘗試這個,並回到我的結果。 – Icebreaker
嘿,我試了一下,它說代碼中有錯誤。它指出「字段名稱是未知的」,它強調了這一部分:{myproc; 1.col1}任何想法? – Icebreaker
@ Marino3d你必須用你想在字段中顯示的存儲過程/列的名稱來替換它。 –
如果你沒有做這個領域,只是回購任何計算rting它,你可以作爲一個字符串,而不是一個數字餵它到你的報告?
沒有計算。它直接從我的oracle數據庫中提取。我沒有創建提取數據的過程,但我知道它根本不處理數字。 CR級別也沒有進行計算。 – Icebreaker
一個簡單的只是儘量在格式下面的代碼filed->號 - > Customize->小數代碼部分:
if CurrentFieldValue=Int(CurrentFieldValue) then
0
else
2
數「2」是你的小數位,你可以用它代替您擁有。
謝謝。這解決了我的兩個問題。首先,這是我需要的。其次,我正在尋找'CurrentFieldValue'。 – hims056
這將允許您保持該字段爲數字,而不必轉換爲文本。此解決方案是小數點格式更改。
•右鍵單擊要將此格式應用於
•單擊「格式字段」中的「詳細信息」字段
•單擊「數字」選項卡
•點擊「自定義。 ..「
從您想要保留的最大小數位開始,然後將行重複向後。例如,如果您知道最大小數位數有一個值,您希望保持該數字的起始位置,即1.2345600,那麼您將以5開頭。如果數字爲0,則必須首先考慮此位置,否則將出現錯誤
「字段名稱」是您希望更改其格式的數據庫字段名稱。
If {"Field Name"} = 0 then 2 else
if((({"Field Name"})/(truncate({"Field Name},4)))>1) then 5 else
if((({"Field Name"})/(truncate({"Field Name},3)))>1) then 4 else
if((({"Field Name"})/(truncate({"Field Name},2)))>1) then 3 else
2
您能詳細解釋一下您提供的解決方案嗎? – abarisone
查看我的回答爲[在式CR輪十進制] [1] [1]:http://stackoverflow.com/questions/15462307/round-decimal-in-formula- cr – craig
雖然我不想做任何舍入。我只想顯示確切的數字並省略任何額外的0。 – Icebreaker