2015-12-10 18 views
0

我正在做一個網站來顯示產品和價格,我在計算中遇到一些錯誤。在Eval中的計算()

Screenshot of the DataList

<asp:Button ID="SellPrice1" 
      Visible="true" 
      BackColor="#9933FF" 
      Width="200px" 
      BorderStyle="solid" 
      BorderColor="#ffffff" 
      BorderWidth="0px" 
      ForeColor="white" 
      Font-Underline="false" 
      runat="server" 
      CommandArgument='<%# Eval("Barcode")%>' 
      CommandName="Add" 
      Text='<%# "Normal price: RM" + String.Format("{0:0.00}", Convert.ToInt32(Eval("SellPrice_1")) * 1.06, "{0:0.00}") %>' 
      Font-Size="12px" 
      Font-Bold="true"></asp:Button> 

      <asp:Button ID="SellPrice2" 
      Visible="true" 
      BackColor="#9933FF" 
      Width="200px" 
      BorderStyle="solid" 
      BorderColor="#ffffff" 
      BorderWidth="0px" 
      ForeColor="white" 
      Font-Underline="false" 
      runat="server" 
      CommandArgument='<%# Eval("Barcode")%>' 
      CommandName="Add" 
      Text='<%# "Member price: RM" + Eval("SellPrice_2", "{0:0.00}") %>' 
      Font-Size="12px" 
      Font-Bold="true"></asp:Button> 

價格的第一個項目:亨氏色拉醬ORIGINAL 285G(8.0189)

以上是我的源代碼來調用2種價格爲顯示(正常價,會員價格) 兩個數據當前具有相同數量。

正如你們可以看到,我的正常價格包括稅號是1.06。 該代碼工作正常,但是當我通過使用計算器計算實際金額時,所有計算都是錯誤的,排除第二個是275.00,如附圖所示。

所以我的問題是,我如何確保所有的計算可以是正確的?如果我的信息不夠清楚,請告訴我。

我發現我的問題其實是計算四捨五入所有的小數位只計算金額。但我該如何解決這個問題?

+1

圖片不可用......但我假設你缺少括號酌情所以編譯器把他們詮釋考慮順序而不是規則(第一乘法和分區,然後添加) –

+0

@ИвоНедев感謝您的回覆,由於我沒有將圖像上傳到數據庫,圖像不可用。注意到,我會立即檢查。 – TheButterfly

+0

這是內置中繼器嗎? –

回答

1

對不起,我找到了解決方案,我會張貼它以備將來參考。

here討論,他迫使數爲十進制數,作爲一個例子,我這​​樣做是爲了數1.06,以及最終的結果是這樣的

Text='<%# "Normal price: RM" + String.Format("{0:0.00}", Convert.ToDecimal(Eval("SellPrice_1")) * 1.06m) %>' 

當你看到,我第一次Convert.ToDecimal以計算包含小數位數。 然後我得到的錯誤

Operator '*' cannot be applied to operands of type 'decimal' and 'double' 

,這是我逼數量

1.06成爲1.06米

到底讓我的最終結果。

再次闖禍,並感謝ИвоНедев對不起你的時間