Это не совсем ответ на XML-сторону вещей, но если вы хотите класс C # для представления рациональных чисел, я некоторое время назад пишу очень гибкий как часть моей библиотеки ExifUtils (поскольку большинство значений EXIF представлены в виде рациональных чисел).
Сам класс является универсальным, принимая числитель / знаменатель любого типа, реализующего IConvertable
(который включает в себя все типы чисел BCL), и будет сериализовывать (ToString) и десериализовать (Parse / TryParse), что может дать вам именно то, что вам нужно для ваше XML-представление.
Если вам абсолютно необходимо представить рациональное число с пробелом, вы можете адаптировать его для использования пробела ' '
в качестве разделителя буквально с одним изменением символа в источнике.
Как немного не по теме в ответ на комментарии Стивена Лоу, использование рациональных чисел, в то время как, казалось бы, неинтуитивно, имеет некоторые преимущества. Числа, такие как PI, также не могут быть представлены в виде десятичного числа / числа с плавающей запятой. аппроксимация PI (например, значение в Math.PI) может быть точно так же точно представлена, как рациональное число:
314159265358979323846 / 100000000000000000000
Принимая во внимание, что очень простое рациональное число 2/3
невозможно представить с той же точностью, что и любое другое десятичное число с плавающей запятой / фиксированной точностью:
0.66666666666666666667