C#ASP.NET MVC计算营业税

时间:2018-12-01 05:26:40

标签: c#

我正在尝试在视图页面中计算营业税,但似乎无法正常使用。

下面的代码除了产生带有销售税的总计外,还在工作。营业税是单数的,不是每条记录上都有。我基本上只需要对小计应用Tax并显示Total。

我尝试过的事情:

totalOrder += (item.Quantity * item.SellingPrice);

total = (totalOrder * 8%);

它不喜欢8%

使用变量

var tax = .08;
var tax = 8%

 ((totalOrder * tax) / 100);

如果以上所有均给出错误,则全部-不能将*与小数等一起使用。

下面是该视图部分的代码。谢谢您的帮助

<tbody>
                            @foreach (var item in Model.InvoiceDetail)
                            {
                                <tr>
                                    <td>@Html.DisplayFor(modelItem => item.Quantity)</td>
                                    <td>@Html.DisplayFor(modelItem => item.Material)</td>
                                    <td>@Html.DisplayFor(modelItem => item.Description)</td>
                                    <td>$@Html.DisplayFor(modelItem => item.SellingPrice)</td>

                                    <td>@string.Format("{0:C2}", (item.Quantity * item.SellingPrice))</td>
                                </tr>
                                totalOrder += (item.Quantity * item.SellingPrice);

                                total = (totalOrder * 8%);
                            }
                        </tbody>
                    </table>
                    <h5 style="margin-left: 80%;"><b>Sub Total :</b> @string.Format("{0:C2}", totalOrder)</h5>
                    <h5 style="margin-left: 80%;"><b>Tax :</b> 8%</h5>
                    <h5 style="margin-left: 80%;"><b>Total Due :</b> @string.Format("{0:C2}", total)</h5>

我也在使用这个:

decimal totalOrder = 0;
decimal total = 0;

Screen Shot of amounts

[编辑]当前代码

decimal totalOrder = 100.1m;
decimal tax = .08m;
decimal total = totalOrder * (1.0m + tax);

<tbody>
                            @foreach (var item in Model.InvoiceDetail)
                            {
                                <tr>
                                    <td>@Html.DisplayFor(modelItem => item.Quantity)</td>
                                    <td>@Html.DisplayFor(modelItem => item.Material)</td>
                                    <td>@Html.DisplayFor(modelItem => item.Description)</td>
                                    <td>$@Html.DisplayFor(modelItem => item.SellingPrice)</td>

                                    <td>@string.Format("{0:C2}", (item.Quantity * item.SellingPrice))</td>
                                </tr>
                                //totalOrder += (item.Quantity * item.SellingPrice);


                            }
                        </tbody>
                    </table>
                    @{totalOrder += (Model.TotalCount * Model.PricePer);}
                    <h5 style="margin-left: 80%;"><b>Sub Total :</b> @string.Format("{0:C2}", totalOrder)</h5>
                    <h5 style="margin-left: 80%;"><b>Tax :</b> 8%</h5>
                    <h5 style="margin-left: 80%;"><b>Total Due :</b> @string.Format("{0:C2}", total)</h5>

2 个答案:

答案 0 :(得分:0)

如果我正确地解释了您的变量名,您似乎有两个问题(也许还有一个将来的问题)。

  1. 您的total变量仅设置为税收值,而不是totalOrder和税收
  2. var tax = 8%无效的c#,您需要使用var tax = .08之类的小数
  3. 要记住的另一件事(我认为您还没有意识到)是用下位数来四舍五入问题。

代码应类似于:

decimal totalOrder = 100.01m;
decimal tax = .08m;
decimal total = totalOrder * (1.0m + tax);

答案 1 :(得分:0)

感谢Nathan Werry,我设法解决了这个问题。我将在每个代码段之后解释我的工作。

以下是为营业税创建的代码:

decimal totalOrder = 0m;
decimal tax = .08m;
@{decimal totalTax = totalOrder * (tax);
  decimal total = totalOrder + totalTax;}

TotalOrder仅反映了下面的数量* SellingPrice计算,因此不需要添加任何内容。

税收是0.08m税

TotalTax是TotalOrder *税金

最后,您必须将税款添加到TotalOrder。

下面是foreach语句的完成代码:

<tbody>
                            @foreach (var item in Model.InvoiceDetail)
                            {
                                <tr>
                                    <td>@Html.DisplayFor(modelItem => item.Quantity)</td>
                                    <td>@Html.DisplayFor(modelItem => item.Material)</td>
                                    <td>@Html.DisplayFor(modelItem => item.Description)</td>
                                    <td>$@Html.DisplayFor(modelItem => item.SellingPrice)</td>

                                    <td>@string.Format("{0:C2}", (item.Quantity * item.SellingPrice))</td>
                                </tr>
                                totalOrder += (item.Quantity * item.SellingPrice);


                            }
                        </tbody>
                    </table>
                    @{decimal totalTax = totalOrder * (tax);
                        decimal total = totalOrder + totalTax;}
                    <h5 style="margin-left: 80%;"><b>Sub Total :</b> @string.Format("{0:C2}", totalOrder)</h5>
                    <h5 style="margin-left: 80%;"><b>Tax :</b> 8%</h5>
                    <h5 style="margin-left: 80%;"><b>Total Due :</b> @string.Format("{0:C2}", total)</h5>