Число, которое вы анализируете, находится вне диапазона long
- long.MaxValue
равно 0x7FFFFFFFFFFFFFFF, а ваше значение равно 0xF0A6AFE69D2271E7.
Вместо этого используйте ulong.Parse
, и оно должно быть в порядке.
Я подозреваю, что это "работает" в JavaScript, потому что (на момент написания) все JavaScript числа являются 64-битными значениями с плавающей запятой, поэтому имеют огромный диапазон - но с меньшей точностью, поэтому значение, которое явно странно (последний гекс ди git 7) дает четный результат.