float值与double值相乘,如何输出?

tlxfh 2009-03-28 11:38:56
我的程序中我用到两个不同类型的数值进行相乘
float a;
double b;
//其中a,b都是变量。现在已经赋值。
CString text;
text.Format("%f",a*b);
MessageBox(text);

但是输出的结果总是显示“-1.#IO”或者“1.#IND00
”。请问这个问题该如何解决。是不应该用“%f”还是应该什么搞呢?
用Format("%lf",a*b)同样不行。
...全文
828 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tlxfh 2009-03-30
  • 打赏
  • 举报
回复
问题解决了,是前面数值传递的问题。多谢各位关注!!
klkvc386 2009-03-28
  • 打赏
  • 举报
回复
进来顺便问下如何显示两位小数点 !
wsprintf() 不能用小数点
sprintf 在unicode 用不了
CString m_a.format( L"%2lf" ) 不起作用
要怎么做啊?!
hust_terry 2009-03-28
  • 打赏
  • 举报
回复
主要看你赋的是什么值,这个显示应该是溢出了的。

float和double相乘会自动转换为float计算的。
cnzdgs 2009-03-28
  • 打赏
  • 举报
回复
text.Format("%Lf",a*b);
wqvbjhc 2009-03-28
  • 打赏
  • 举报
回复
我在这边测试了,显示结果正确啊,LZ能否把代码贴一下,说不定是在其他地方出错啊
zhangchaokun 2009-03-28
  • 打赏
  • 举报
回复
找找别处吧,这处没有任何问题
tonyhf 2009-03-28
  • 打赏
  • 举报
回复
楼主看下文本控件属性设置有没有问题,如果没有的话建议都使用同一个数据类型!
tlxfh 2009-03-28
  • 打赏
  • 举报
回复
其实是这个样子的,
float a;
double b;
//其中a,b都是变量。现在已经赋值。

CResult resultdlg;
CString content[20];//输出检测结果
content[i].Format("得出结果为%f\n",a*b);
resultdlg.m_para+=content[i];
//m_para是对话框CResult里的一个文本控件。我是想在这个文本控件中输出这个值!
一条晚起的虫 2009-03-28
  • 打赏
  • 举报
回复
实在太长了,用%e输出吧,显示为科学计数法
klkvc386 2009-03-28
  • 打赏
  • 举报
回复
CString m_a.format( L"%2lf" ) 不起作用

原来少了个点 .2lf

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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