Как мне преобразовать десятичную дробь в int в C #? - PullRequest
207 голосов
/ 01 февраля 2009

Как мне преобразовать десятичное число в целое?

Ответы [ 11 ]

0 голосов
/ 24 апреля 2009

Я считаю, что оператор приведения не работает, если у вас есть десятичное число в штучной упаковке (то есть десятичное значение внутри типа объекта). Convert.ToInt32 (десятичный как объект) отлично работает в этом случае.

Эта ситуация возникает при получении значений IDENTITY / AUTONUMBER из базы данных:

SqlCommand foo = new SqlCommand("INSERT INTO...; SELECT SCOPE_IDENTITY()", conn);
int ID = Convert.ToInt32(foo.ExecuteScalar());  // works
int ID = (int)foo.ExecuteScalar();              // throws InvalidCastException

См. 4.3.2 Распаковка конверсий

...