0与负数相乘问题

__Jun__ 2010-05-19 09:43:06
刚才在小机里面根据发现,各位解释一下。

double a=0.0;
double b=-12.0;
double c;

c = a * b; //在小机里面,c的值竟然是-0.000000
...全文
504 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
哦?有这种事,学习一下
zht_304 2010-05-19
  • 打赏
  • 举报
回复
来学习的
cabbge 2010-05-19
  • 打赏
  • 举报
回复
哈哈 mark
十八道胡同 2010-05-19
  • 打赏
  • 举报
回复
根据数学理论 0= +0 =-0
purpleDiamond 2010-05-19
  • 打赏
  • 举报
回复
DDDDDDD
真的吗咚咚 2010-05-19
  • 打赏
  • 举报
回复
PC环境cygwin下运行gcc3.2,得到结果是-0.000000
selooloo 2010-05-19
  • 打赏
  • 举报
回复
恩,0.0的内存形式为0x00000000(以float型为例) ,0×-12,会变成 0x80000000 最高位即符号位被保存了下来
因为浮点数的存储和计算和整数不同
赵4老师 2010-05-19
  • 打赏
  • 举报
回复
double a=0.0;
double b=-12.0;
double c;

c = a * b;
printf("%.1g\n",c);
zhangyafei13 2010-05-19
  • 打赏
  • 举报
回复
来看看,了解了解
rwjlqn 2010-05-19
  • 打赏
  • 举报
回复
编译器处理的问题~ 不碍事~
__Jun__ 2010-05-19
  • 打赏
  • 举报
回复
在PC机上得出的结果是0.00000000。在我们的嵌入式机器里,通过printf打印出来得到是-0.000000。
dreamsdark 2010-05-19
  • 打赏
  • 举报
回复
什么叫小机?
结果应该是0.000000吧
wzywsk 2010-05-19
  • 打赏
  • 举报
回复
我运行了下程序结果是0
selooloo 2010-05-19
  • 打赏
  • 举报
回复
你怎么看出是-0.000000的?
__Jun__ 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 selooloo 的回复:]
恩,0.0的内存形式为0x00000000(以float型为例) ,0×-12,会变成 0x80000000 最高位即符号位被保存了下来
因为浮点数的存储和计算和整数不同
[/Quote]
说得对,分析了一下,确实是这么回事!谢谢!
结贴给分,只要回复的都有分,呵呵!

69,371

社区成员

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

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