我有一个网页,在某些字段中显示存储在服务器上的值,但如果有任何其他字符以“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'
答案 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