Format显示为-0.000
发布日期:2021-06-28 22:05:30 浏览次数:3 分类:技术文章

本文共 498 字,大约阅读时间需要 1 分钟。

转载自:

现象

  在VC开发中我们常用CString的Format函数来把int,float,double等类型数据转换为字符串类型。在浮点数据的转换中经常为出现“-0.000”这样的字符串,难道Format函数对数据的符号位有什么特殊处理?

原因

  经过分析发现,并非Format函数有什么特殊,而是浮点数转换精度截断造成的假象,如所示:

double dVal = -0.0001;CString strVal;strVal.Format(_T("%.3lf"), dVal); // strVal会显示为“-0.000”

%.3lf表明保留dVal三位小数,-0.0001保留三位小数就变成了-0.000,所以strVal就成了“-0.000”

方案

  为了避免出现0还带正负号的情况,就需要在格式化后再做一次处理。

double dVal = -0.0001;CString strVal;strVal.Format(_T("%.3lf"), dVal); // strVal会显示为“-0.000”if ( _T("-0.000") == strVal )   strVal = 0.000;

转载地址:https://blog.csdn.net/yfh1985sdq/article/details/80882186 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:matlab-采样位数与信号强度关系
下一篇:matlab-罗曼诺夫斯基准则剔除粗大值

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月16日 11时09分13秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章