FireFox删除我的尾随'0'

时间:2016-03-14 13:22:29

标签: c# html server-side

我有一个网页,在某些字段中显示存储在服务器上的值,但如果有任何其他字符以“0”或“.00”结尾,则将其删除,因此1.10英镑将为1.1英镑而10.00英镑将为10英镑

在我的代码中,我将它们设为Decimals,所以我希望它能显示整个值。如果我使用Chrome或IE它对我来说很好,我的问题只是FF。

在我看来

<%
    Decimal sum = 0;
    Decimal totalTrancheValues = 0;
    var isCappeddrawdown = false;

    foreach (var tranche in benefitDetails.Tranches)
    {
        //Adds all remaining incomes for 'Capped drawdown' and give a total for them all
        if (tranche.FundType == "Capped drawdown")
        {
            sum = sum + Convert.ToDecimal(tranche.GrossIncomeRemainingThisPensionYear == null ? 0 : tranche.GrossIncomeRemainingThisPensionYear);
            isCappeddrawdown = true;
        }

        //Adds totals for all tranches
        totalTrancheValues = totalTrancheValues + Convert.ToDecimal(tranche.Value == null ? 0 : tranche.Value);
    }
%>

<div class="form-group">
     <label class="col-sm-offset-1 col-sm-4 control-label">SIPP cash balance</label>
     <div class="col-sm-4">
          <input id="SIPPCashBalance_Textbox" name"SIPPCashBalance_Textbox" value=<%: Math.Round(client.Sipp.Cash, 2) %> disabled />
     </div>
</div>
<% if (isCappeddrawdown)
{%>
     <div class="form-group">
          <label class="col-sm-offset-1 col-sm-4 control-label">Remaining income</label>
          <div class="col-sm-4">
               <input id="RemainingIncome_Textbox" name="RemainingIncome_Textbox" value=<%: sum %> disabled />
          </div>
     </div>
<%} %>

我尝试在我的'总和'周围包裹convert.todecimal,但它不起作用

当我使用F12时,它表示我的值为value="30.00",但在我的网页上,它只显示为30

我尝试将其用作string并尝试string.Format("{0:C}", sum)sum.toString(),但我的字段不会显示'.00'

1 个答案:

答案 0 :(得分:2)

Jeroen评论是正确的。

<%: sum %>切换为<%: sum.ToString("£ 0.00") %>甚至更好:<%: string.Format("{0:C}", sum) %>,它与区域设置一起使用,使您的字符串格式本地化。

编辑:“C”表示货币格式,它继承自CultureInfo。这样可以轻松本地化您的应用程序。大多数.Net类重写.ToString()方法以提供许多不同的格式(特别是数字)。

你应该查看:https://msdn.microsoft.com/pt-br/library/fzeeb5cd(v=vs.110).aspx