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