【发布时间】:2015-10-13 20:06:37
【问题描述】:
我正在寻找将浮点数转换为 C 中的十进制表示的最佳方法。我将尝试给您举个例子:用户在 IEEE754 (1 1111111 10101...) 和程序中引入了一个数字必须返回十进制表示(例如 25.6)
我尝试过使用掩码和按位运算,但没有得到任何合乎逻辑的结果。
【问题讨论】:
-
为什么不使用标准库函数?
-
我只能使用
-
这实际上是一项不平凡的任务,因此对于 StackOverflow 问题来说过于宽泛。相关论文有:Guy L. Steele、Jon L. White:“如何准确打印浮点数”。 ACM SIGPLAN Notices,第 25 卷第 6 期,1990 年 6 月,第 112-126 页。 以及 Robert G. Burger, R. Kent Dybvig:“快速准确地打印浮点数”。在过程中。 ACM SIGPLAN '96 编程语言设计和实现会议,1996 年,第 108-116 页。
-
看看那个标题里有什么然后:en.cppreference.com/w/c/io
-
我可能误解了这个问题。正如所写的那样,它似乎向我暗示要手动完成转换,因为肯定任何 C 程序员都会知道
printf()。如果问题是关于类型双关语,请使用memcpy(),这在 C 和 C++ 中都是合法的,或者使用union,这在 C99 中是合法的。
标签: c bit-manipulation decimal transform ieee-754