我在數據集中有一列AMOUNT_PAISE。我從來自sql server存儲過程的結果集中綁定這個數據集。對於數據庫貨幣中的AMOUNT_PAISE列是paise(可以說888 paise爲特定行),但我想以盧比顯示此金額(盧比等同於888 paise爲8.88)。但是我不能直接分配它,因爲數據集包含int64值。當我將小數888轉換爲int64時,它給出9(888/100 = 8.88,當轉換爲int64時,它給出9) 所以請告訴我現在應該嘗試什麼。如何在C#中的數據集中設置十進制值?
配方可以從paise轉換爲rupee。
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>
獲取exeption指定的轉換無效 – user3264676
嘗試Convert.ToDecimal而不是轉換 - 請參閱更新。它可能也會通過首先投射十進制 - 「(十進制)(long)Eval(...)」 – Joe
在GridView中它不顯示正確的值。 但是,當我在編寫它的工作正常。 十進制decimalValue = 888; string tempStr =(Convert.ToDecimal(decimalValue)/ 100).ToString(「N2」); – user3264676