Почему DateTime для времени Unix использует двойное вместо целого числа?

Мне нужно преобразовать DateTime в временную метку Unix. Итак, я погуглил в поисках примера кода

Практически во всех результатах, которые я вижу, они используют double в качестве возврата для такой функции, даже если явно используют ] floor , чтобы преобразовать его в целое число. Временные метки Unix всегда целые. Так в чем же проблема с использованием long или int вместо double?

static double ConvertToUnixTimestamp(DateTime date)
{
    DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
    TimeSpan diff = date - origin;
    return Math.Floor(diff.TotalSeconds);
}

10
задан mskfisher 10 May 2012 в 17:10
поделиться