1
我創建了一個包含幾個字段的結構。
在那個結構中,我有一個屬性,它調用一個方法,然後爲了記錄目的而創建一個字符串。
當我使用結構中的屬性時,我直接調用創建日誌字符串的實際方法時會得到不同的小數點值!
假設我有9990M,如果我使用的結構是9990.0000,當我調用該方法直接將打印9990.00爲什麼我會得到不同的小數點?
這是我的方法:
private static string CreateLog(
long userId, decimal amount,
long transactionID, decimal totalCash)
{
Values = string.Format("{0}{1}{2}{3}",
amount,
userId,
transactionId,
totalCash);
return Values;
}
我的結構是這樣的:
public struct AccountStruct
{
public long USER_ID;
public decimal AMOUNT;
public long TRANSACTION_ID;
public decimal CURRENT_CASH;
string ValuesToBeLoged
{
get
{
return CreateLog(this);
}
}
}
而且CreateLog看起來像這樣(調用前一種方法)
private static string CreateLog(AccountStruct accinfo)
{
return CreateLog( accinfo.USER_ID,
accinfo.AMOUNT,
accinfo.TRANSACTION_ID,
accinfo.CURRENT_CASH);
}
這是爲什麼?這裏有什麼問題?
我用Fx代替Nx,因爲我不想要分隔符。再次感謝,但我想知道究竟是什麼造成了這樣的差異 – Breeze 2014-12-02 15:49:15
在內部,您的十進制值可以存儲爲9990 x 10^0或999 x 10^1或99900 x 10^-1。您將不得不閱讀規範並檢查原始內存,以便準確確定何時將其從一個版本轉換爲另一個版本。 (或者它可能完全是其他的東西。) – 2014-12-02 17:10:14
非常感謝,我會看看它 – Breeze 2014-12-03 02:20:31