2013-07-02 54 views
0

我正在使用SSRS編寫報告,我遇到了一個非常奇怪的問題。 我有四捨五入的數字,我不想四捨五入。SSRS或SQL數字舍入/截斷SSRS報告

下面是正在使用的表達式。 我已經格式化文本框顯示4位小數,默認值,金錢,自定義和其他沒有運氣。 這些數字具有以小數開頭的正確小數。

所以下面是我使用的表達式。

爲什麼在使用OR運算符時四捨五入或截斷結果?

通常對SSRS和SQL不熟悉。

Textbox1的具有此表達它

IIf(Fields!SelQty.Value=1,Fields!EstPrice1.Value * Fields!Qty1.Value,0) 

結果

2252.2800, 
191.3205, 
505.2300, 
240.8000` 

TextBox2中具有它

IIf(Fields!SelQty.Value=2,Fields!EstPrice2.Value * Fields!Qty2.Value,0)` 

結果

81500.0400, 
5914.0800, 
58166.1600 
該表達式

更改Textbox1的這種表達=

IIf(Fields!SelQty.Value=1,Fields!EstPrice1.Value * Fields!Qty1.Value,0) 

OR

IIf(Fields!SelQty.Value=2,Fields!EstPrice2.Value * Fields!Qty2.Value,0) 

結果

2252, 
191, 
505, 
241, 
81500, 
5914, 
58166 
+0

我不明白你最終表達的意思。你所做的是這樣的:= 2252.2800或81500.0400,所以SSRS不會將你的數字視爲雙倍。 – tezzo

回答

1

OR here is a bitwise operator

所以2252.2800 OR 0給出2252由於某些類型的鑄造。就個人而言,我從來沒有bitwised數字編號,所以不知道它是如何工作

爲什麼要用,還是要:它與Iif沒有任何意義。你真的想做什麼?

嵌套Iif是否這樣?

=IIf(
     Fields!SelQty.Value=1, 
     Fields!EstPrice1.Value * Fields!Qty1.Value, 
     IIf(
      Fields!SelQty.Value=2, 
      Fields!EstPrice2.Value * Fields!Qty2.Value, 
      0 
      ) 
    ) 
+0

就像我說的,我是新來的,所以嵌套的IIF是我需要的。 – user2332678