| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 871 人关注过本帖
标题:请问这段程序中的数为什么一定要带小数点
只看楼主 加入收藏
菲尔利斯
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-23
结帖率:0
收藏
已结贴  问题点数:1 回复次数:6 
请问这段程序中的数为什么一定要带小数点
#include <stdio.h>
void main()
{
int i;
float a;

for(i=0;i<3;i++)
          a=(a+1.0/2)*2;
printf("a=%f\n",a);
    }
如果换成1的话结果就会出错
这应该是常量啊 1跟1.0有区别吗?
或者是编译器的问题?
搜索更多相关主题的帖子: 小数点 
2011-06-23 16:30
w2239348
Rank: 2
等 级:论坛游民
帖 子:22
专家分:11
注 册:2011-3-30
收藏
得分:0 
/(这个除号)如果两个都是整型除出来的数只取整数部分,所以要变成实数型..这样才会正确
2011-06-23 16:39
yue_shen_vs
Rank: 2
等 级:论坛游民
帖 子:19
专家分:37
注 册:2011-4-22
收藏
得分:0 
1和1.0区别大了,首先它们不是一个数据类型,储存的时候分配的空间也不一样,1/2一般的编译器会把他看成整型之间的运算,出来的结果也是整型也就是0,结果自然就不对了。
2011-06-23 16:39
菲尔利斯
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-23
收藏
得分:0 
两个数只要一个是浮点型的结果就是浮点型 我是不是可以理解为在做常量运算时候
结果的类型取两个数或者N个数中精度最高的(占内存最长的?)那个

还有 是否四则运算都是这个规律?
要不要加括号括起来  看着总觉得别扭
2011-06-23 16:57
菲尔利斯
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-6-23
收藏
得分:0 
回复 2楼 w2239348
两个数只要一个数带小数点就就行了吧?
2011-06-23 16:59
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
只要一个带小数点就行了
2011-06-23 17:45
local1990
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-21
收藏
得分:0 
1和1.0区别大了,首先它们不是一个数据类型,储存的时候分配的空间也不一样,1/2一般的编译器会把他看成整型之间的运算,出来的结果也是整型也就是0,结果自然就不对了。
2011-06-23 23:44
快速回复:请问这段程序中的数为什么一定要带小数点
数据加载中...
 
   



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

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