데이터 세트에 AMOUNT_PAISE 열이 있습니다. SQL Server 저장 프로 시저의 결과 집합에서이 데이터 집합을 바인딩하고 있습니다. DB 통화의 AMOUNT_PAISE 열은 paise (특정 행에 대해 888 paise라고 말함)이지만이 금액을 Rupees (888 paise의 루피에 해당하는 8.88)로 표시하고 싶습니다. 그러나 데이터 세트에 int64 값이 포함되어 있기 때문에 직접 할당 할 수 없습니다. 십진수 888을 int64로 변환하면 9가됩니다 (888/100 = 8.88, int64로 변환하면 9가됩니다). 그래서 지금 무엇을 시도해야하는지 알려주세요.
파이즈에서 루피로 변환하는 공식.
rupee = paise/ 100; //upto 2 decimal points
if (dsTransactionLogs.Tables.Count > 0)
{
if (dsTransactionLogs.Tables[0].Rows.Count > 0)
{
//Code to convert amount from Paise to Rs.
int i = 0;
foreach (DataRow row in dsTransactionLogs.Tables[0].Rows)
{
decimal decimalAmountInPaise = Convert.ToDecimal(dsTransactionLogs.Tables[0].Rows[i]["AMOUNT_PAISE"]);
decimalAmountInPaise = Math.Round(decimalAmountInPaise / 100, 2);
//Int64 int64AmountInPaise = Convert.ToInt64(decimalAmountInPaise);
string strAmount = decimalAmountInPaise.ToString("#.##");
dsTransactionLogs.Tables[0].Rows[i]["AMOUNT_PAISE"] = Convert.ToInt64(strAmount);
i++;
}
GridViewTRANSACTIONDETAILS.DataSource = dsTransactionLogs;
GridViewTRANSACTIONDETAILS.DataBind();
transactionGVDiv.Style.Add("height", "400px");
//LabelNoTransactionLogsID.Visible = false;
}
else
{
//LabelNoTransactionLogsID.Visible = true;
}
}
이것은 gridview의이 열에 대한 aspx 코드입니다.
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Amount">
<ItemTemplate>
<asp:Label runat="server" ID="AmountLbl" NavigateUrl="#" Text='<%#Eval("AMOUNT_PAISE") %>'> ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
DataTable을 수정하는 대신 표시 할 때 변환을 수행하는 것이 좋습니다. 즉 교체 :
... Text='<%#Eval("AMOUNT_PAISE") %>'> ...
다음과 같이 :
... Text='<%# (Convert.ToDecimal(Eval("AMOUNT_PAISE")) / 100M).ToString("N2") %>'> ...
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다