2015-12-10 16 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米

到底让我的最终结果。

再次闯祸,并感谢ИвоНедев对不起你的时间