双精度与字符串互转时的长度取值问题

Gauchyler 2010-07-18 02:21:08
对于任意双精度浮点数d,转成字符串s后,将s转回双精度浮点数d1。
问题:要保证转换后,d与d1完全相等(双精度浮点数的比特表示形式相同),字符串s的长度至少需要多长?请说明理由。
如下所示:


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main ()
{
double d = -1/3; // 可以取任意值
char s[L];

sprintf(s, '%A.Bg', d);

double d1 = atof(s);

assert(d1==d);

return 0;
}


程序不出错时,L、A、B的最小取值是多少?请说明理由。
...全文
152 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

70,034

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧