Это правда, но, похоже, ему не нравится ToString, он хочет построить десятичную строку из битов (извлечь 96-битное значение типа int, экспоненту, знак).

ел бы иметь возможность получить кусочки от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() но тогда мне не нужно было бы спрашивать.

Ответы на вопрос(4)

Ваш ответ на вопрос