Используя XmlValidatingReader предотвратит исключения, если Вы обеспечите свой собственный ValidationEventHandler.
Из памяти, double
может точно представлять 53-битовое целое число со знаком.
Нет, вы не можете использовать Double для хранения 64-битных целых чисел без потери точности.
Однако вы можете применить патч Lua, который добавляет поддержку истинных 64-битных целых чисел в интерпретатор Lua. Примените патч LNUM к исходному тексту Lua и перекомпилируйте.
Несмотря на то, что вы получили несколько хороших ответов на свой вопрос о 64-битных типах, вам все же может потребоваться практическое решение вашей конкретной проблемы. Самым надежным решением, которое я знаю, является сборка Lua 5.1 с патчем LNUM (также известным как целочисленный патч Lua), который можно загрузить с LuaForge. Если вы не планируете собирать Lua из исходного кода C, существует по крайней мере одна чистая библиотека Lua, которая обрабатывает 64-битные целые числа со знаком - см. Вики для пользователей Lua.
Двойник сам по себе является 64-битным типом. Однако вы теряете 1 бит для знака и 11 для экспоненты.
Итак, ответ - нет: это невозможно.
Я ничего не знаю о lua
но если бы вы могли понять, как выполнять побитовые манипуляции с плавающей точкой на этом языке, вы могли бы теоретически создать класс-оболочку, который принял бы ваш номер в виде строки и установил биты с плавающей запятой в том порядке, который представляет собой число вы дали это
более практичным решением было бы использование некоторой библиотеки bignum
В 64-битной системе можно хранить только 2 ^ 64 различных кода. Это означает, что 64-битный тип, который может представлять 2 ^ 64 целых числа, не имеет места для представления чего-либо другого, например чисел с плавающей запятой.
Очевидно, что double может представлять множество нецелых чисел, поэтому он может не соответствует вашим требованиям.
Нет
По крайней мере, некоторые биты 64-битного числа с двойным числом должны использоваться для представления экспоненты (положение двоичной точки), и, следовательно, для фактическое число. Так что нет, 64-битное число с двойной точностью не может представлять все значения, которые может представлять 64-битное целое число (и наоборот).
IEEE 754 double не может точно представлять 64-битные целые числа. Однако он может представлять в точности каждое 32-битное целочисленное значение.