Я хотел бы иметь возможность получить биты из значения System.Decimal
и затем преобразовать его в строковое представление значения, так же, как это сделал бы Decimal.ToString()
, но мне трудно придумать алгоритм .
Итак, у меня есть что-то вроде этого:
decimal d = 1403.45433M;
int[] nDecimalBits = decimal.GetBits(d);
// How to convert the 4 integers in nDecimalBits to a string
// that contains "1403.45433"?
Я знаю двоичный формат десятичного числа - первые 3 целых числа содержат биты значения, а последнее целое число содержит бит знака и коэффициент масштабирования.
Я пытался найти алгоритм с использованием различных поисковых терминов, но десятичная дробь в основном используется как синоним «числа с плавающей точкой», поэтому мои поиски нашли ответы на несвязанные проблемы.
Любая помощь будет оценена.
Редактировать : в ответ на некоторые ответы мне нужно отправить биты на другую платформу, где необходимо восстановить значение. System.Decimal и любая из его функций-членов там недоступны, поэтому мне нужно взять биты и перевести их в строку.
Если бы у меня был выбор, я бы, очевидно, использовал ToString()
, но тогда мне не нужно было бы спрашивать.