【发布时间】:2011-03-29 07:57:54
【问题描述】:
我希望能够从 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(),但我不需要问。
【问题讨论】:
-
为什么需要这样做,为什么不能使用“decimal.ToString()”?