Dlaczego nie mogę rozpakować int jako dziesiętnego?
mamIDataRecord reader
pobieram liczbę dziesiętną w następujący sposób:
decimal d = (decimal)reader[0];
Z jakiegoś powodu powoduje to niepoprawny wyjątek rzutowania, który mówi, że „Określony rzut jest nieprawidłowy”.
Kiedy robięreader[0].GetType()
mówi mi, że to Int32. O ile mi wiadomo, nie powinno to stanowić problemu ....
Przetestowałem to przez ten fragment kodu, który działa dobrze.
int i = 3750;
decimal d = (decimal)i;
To sprawiło, że drapałem się po głowie, zastanawiając się, dlaczego nie można rozpakować int zawartego w czytniku jako dziesiętnego.
Czy ktoś wie, dlaczego tak się dzieje? Czy brakuje mi czegoś subtelnego?