При переходе от двойного к десятичному, предположим, что мой double
может быть представлен как decimal
...
Более уместно ли разыграть двойной какдесятичное число:
( Таблица явных числовых преобразований ) (Обратите внимание, что эта запись ошибочно противоречит первому!)
double foo = bar;
decimal foobar = (decimal)foo;
Или более уместно вызвать конструктор decimal
:
( Десятичный конструктор )
double foo = bar;
decimal foobar = new decimal(foo);
Я склонен использовать конструктор decimal
, но я удивляюсь, почему нужно использовать одно против другого.
Из того, что я могу сказать, единственное отличие состоит в том, что явное приведение двойного числа ниже Decimal.MinValue
возвращает ноль, а при использовании конструктора выдает OverflowException
РЕДАКТИРОВАТЬ: @Joren в комментариях ниже отмечает, что приведение бросает OverflowException
и для небольших значений ... так что, очевидно, документация MSDN неверна.
Вопросы, связанные с данной:
- C # приведение двойной переменной к десятичному значению
- Автоматическое приведение от двойного к десятичному: безопасно ли следующее: