| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 442 人关注过本帖
标题:求助,好像是定义错了?
只看楼主 加入收藏
tiancaizcx
Rank: 2
等 级:论坛游民
帖 子:25
专家分:19
注 册:2011-10-21
结帖率:100%
收藏
 问题点数:0 回复次数:5 
求助,好像是定义错了?
程序代码:
#include <stdio.h>
#include <conio.h>
void main()
{long int i,a1,a2,a3,a4,a5,m;
scanf("%ld",&i);
a1=100000*0.1;
a2=a1+100000*0.075;
a3=a2+200000*0.05;
a4=a3+200000*0.03;
a5=a4+400000*0.015;

  if(i<100000)
      m=i*0.1;
  else if(i<200000)
      m=a1+(i-100000)*0.075;
  else if(i<400000)
      m=a2+(i-200000)*0.05;
  else if(i<600000)
      m=a3+(i-400000)*0.03;
  else if(i<1000000)
      m=a4+(i-600000)*0.015;
  else
      m=a5+(i-1000000)*0.01;
  printf("%ld",m);


    getch();
}
2011-11-06 19:39
tiancaizcx
Rank: 2
等 级:论坛游民
帖 子:25
专家分:19
注 册:2011-10-21
收藏
得分:0 
warning C4244: '=' : conversion from 'const double' to 'long', possible loss of datad
这个是错误提示。。。
2011-11-06 19:40
tiancaizcx
Rank: 2
等 级:论坛游民
帖 子:25
专家分:19
注 册:2011-10-21
收藏
得分:0 
2011-11-06 19:57
fexiong
Rank: 2
等 级:论坛游民
帖 子:6
专家分:31
注 册:2011-11-2
收藏
得分:0 
个人觉得应该是定义为浮点型!不然你每次存到边量里的都为整型,失去了精度!
2011-11-06 20:21
挚爱小芸
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2011-11-6
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
没有报错~
2011-11-06 20:22
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:0 
100000*0.075,这个是按照实型来计算的,而你定义的是长整型,所以它就说从const double' 变成 'long,可能会丢失部分数据,你把 i,a1,a2,a3,a4,a5,m都定义成float或double型试试
2011-11-06 20:24
快速回复:求助,好像是定义错了?
数据加载中...
 
   



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

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