Хотя некоторые компиляторы интерпретируют константу 0x100000000
как 64-разрядное целое число, кажется, что ваше - нет, что делает его слишком большим, чтобы поместиться в 32-разрядное целое число (отсюда и предупреждение).
Простой способ обойти это - заменить целочисленную константу значением double
:
FloatingDate += 4294967296.0;
В качестве альтернативы (если ваш компилятор это поддерживает) вы можете добавить суффикс uLL
к целочисленной константе:
FloatingDate += 0x100000000uLL;
Но это может вызвать другое предупреждение (преобразование из unsigned long long
в double
может привести к потере точности).