搜索

小白求教

查看数: 599 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-5-28 21:10

正文摘要:

本帖最后由 吾尔剀西 于 2014-5-28 21:11 编辑 为什么结果是1010.000061     为什么会有后面的61

回复

hqa1101 发表于 2014-5-31 18:35:28
用doudle a,b,c,d;
cad20020601 发表于 2014-5-30 21:37:34
别用float了骚年,用double吧
吾尔剀西 发表于 2014-5-29 11:29:24
thank  you   明白了呢
4399APPLE2 发表于 2014-5-29 09:44:46
  1. double a,b,c,d;
复制代码
李掌柜 发表于 2014-5-28 22:06:18
float是浮点型类型,如与整数乘时会有精确丢失,,
本代码解决方法是两种:
方法1
  1. #include<stdio.h>
  2. int main(void)
  3. {
  4.         float a,b,c,d;
  5.         a=10.1;
  6.         b=10;
  7.         c=10;
  8.         d=a*((float)b*(float)c);/*乘法时,b  c 申明成float 浮点型*/
  9.         system("color f2");
  10.         printf("%.f",d);
  11.         return 0;
  12. }
复制代码

方法2
  1. #include<stdio.h>
  2. int main(void)
  3. {
  4.         float a,b,c,d;
  5.         a=10.1;
  6.         b=10.0;/*把b申明成浮点型*/
  7.         c=10.0;/*把c申明成浮点型*/
  8.         d=a*(b*c);
  9.         system("color f2");
  10.         printf("%.f",d);
  11.         return 0;
  12. }
复制代码



rosynirvana 发表于 2014-5-28 21:10:23
因为10.1不能在当前通用标准下用二进制写成有限小数
所以总是不精确的
快速回复 返回顶部 返回列表