Подтвердить что ты не робот

Does (int) myDouble когда-либо отличается от (int) Math.Truncate(myDouble)?

Чем (int)myDouble отличается от (int)Math.Truncate(myDouble)?

Есть ли какая-то причина, по которой я должен отдать предпочтение другому?

4b9b3361

Ответ 1

Math.Truncate предназначен для того, чтобы сохранить результат как двойной, без дробной части. Если вы хотите заключить его в int, просто используйте трансляцию напрямую.

Изменить. Для справки, вот соответствующая документация из Явная таблица числовых преобразований:

При преобразовании из значения double или float в интегральный тип значение усекается.

Ответ 2

Как указано Ignacio Vazquez-Abrams (int)myDouble будет работать так же, как (int)Math.Truncate(myDouble), когда myDouble слишком велик.

Таким образом, нет никакой разницы в выходе, но (int)myDouble работает быстрее.