标题:求问关于Format转换double的精度问题
只看楼主
Scofield
Rank: 1
等 级:新手上路
威 望:1
帖 子:56
专家分:0
注 册:2006-5-30
 问题点数:0 回复次数:4 
求问关于Format转换double的精度问题

比如语句:

double Double_Data;

CString tmpstr;

tmpstr.Format("%12f",Double_Data);

//若Double_Data=0.18131235000000时,转换后的 tmpstr=“ 0.181312”,丢失了精度,请问如何才能正确显示呢?谢谢!

好像MSDN上没有介绍啊

搜索更多相关主题的帖子: double Format 精度 Double Data 
2006-07-30 18:10
Scofield
Rank: 1
等 级:新手上路
威 望:1
帖 子:56
专家分:0
注 册:2006-5-30
得分:0 

郁闷,突然想起来了

结帖


2006-07-30 18:16
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
得分:0 
cout.precision(10);
cout<<atof("0.18131235000000");

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-07-30 18:38
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
得分:0 

看一下 MFC 的 CString::FormatV(LPCTSTR lpszFormat, va_list argList) (VC98\MFC\SRC\STREX.cpp)

其中關於 Precision 的片斷:

int nPrecision = 0;
if (*lpsz == '.')
{
// skip past '.' separator (width.precision)
lpsz = _tcsinc(lpsz);

// get precision and skip it
if (*lpsz == '*')
{
nPrecision = va_arg(argList, int);
lpsz = _tcsinc(lpsz);
}
else
{
nPrecision = _ttoi(lpsz);
for (; *lpsz != '\0' && _istdigit(*lpsz); lpsz = _tcsinc(lpsz))
;
}
ASSERT(nPrecision >= 0);
}


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-07-30 20:16
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
得分:0 
这个网址会有点帮助的。

http://www.cplusplus.com/ref/cstdlib/

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-07-30 23:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-81100-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.111986 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved