Короткая версия: Почему мне не нужно приводить 60 и целое число к двойному, чтобы я мог использовать деление с другим двойным, если мне НЕ интересна дробная часть?
Длинная версия: мой босс вызвал меня в строке кода. Я проверил его, и он работает отлично, но он думает, что у меня ошибка, ожидающая появления.
int durationinseconds = 61; // This is actually filled from a double.tryparse
// from a string value out of an xml doc.
int durationinminutes = (int)Math.Ceiling((double)durationinseconds / 60);
Мой код должен получить количество секунд из документа XML, а затем вычислить количество минут, всегда округляя. 60 секунд = 1 минута, 61 секунда = 2 минуты и т. Д.
Я проверил свой код, но он НАСТАИВАЕТ, что часть "/ 60" должна быть "/ 60.0".
Я проверил свой код с 0, 1, 2, 59, 60, 61, 119, 120, 121, 599, 600, 601 и т. Д., И он всегда работает правильно.
Прежде чем я пойду защищаться от него, я в основном понимаю, почему он думает, что мне нужно привести 60 к десятичному знаку, потому что он думает, что если я использую значение int, то double / int приведет к целочисленному значению, эффективно отбрасывая дробную часть.
Однако этого здесь не происходит, и я не могу точно объяснить, почему. Итак, вот мой вопрос: ПОЧЕМУ мне не нужно использовать 60,0 при делении двойного, если я хочу использовать дробную часть?