数学类型转换问题,救命了!!!!!!!!

barbara2008 2005-03-22 10:04:35
(i-a+asin((sin(a-asin((sin(i*TWOPI/NUM))/n)))/n))
怎么进行类型转换?

报错如下:E:\VC文件夹\SineWave\SineWave.c(85) : warning C4244: '=' : conversion from 'double ' to 'long ', possible loss of data
...全文
237 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tfq 2005-03-23
  • 打赏
  • 举报
回复
那要看你需要的是什么类型的数据了。
如果要不损失精度就把左值X,Y定义成double型的。
如果不怕损失精度就如long( (i-a+asin((sin(a-asin((sin(i*TWOPI/NUM))/n)))/n)) )
shine51151 2005-03-23
  • 打赏
  • 举报
回复
楼主可运行一下看看结果 如果满意的话 警告完全可以忽略不管
guyaguya 2005-03-23
  • 打赏
  • 举报
回复
warning没关系,只要不是Error就行,提示只是说转换之后将可能损失精度。
一般位数长的转换成位数小的都会有这种警告。

好像在.net下报的就是error而不是warning了
我前一阵把vc6的代码拿到.net平台就碰到过这样的问题
TempM 2005-03-23
  • 打赏
  • 举报
回复
warning没关系,只要不是Error就行,提示只是说转换之后将可能损失精度。
一般位数长的转换成位数小的都会有这种警告。
arrowcy 2005-03-23
  • 打赏
  • 举报
回复
不是转换了吗?
本来那段代码算出来就是浮点数,而那个x,y就是long,转换了当然会有警告,这个不管就是了
yafizyh 2005-03-23
  • 打赏
  • 举报
回复
warning 没关系,会自动转换的,显示转换更好些。
barbara2008 2005-03-22
  • 打赏
  • 举报
回复
转换不了
barbara2008 2005-03-22
  • 打赏
  • 举报
回复
#define TWOPI (2*3.14159)
double a=TWOPI/6;
float n;
apt[i].x=i*cxClient/NUM;
apt[i].y=(long)cyClient*(i-a+asin((sin(a-asin((sin(i*TWOPI/NUM))/n)))/n));
barbara2008 2005-03-22
  • 打赏
  • 举报
回复
a 是float
runall 2005-03-22
  • 打赏
  • 举报
回复
a的类型?
pcboyxhy 2005-03-22
  • 打赏
  • 举报
回复
long( (i-a+asin((sin(a-asin((sin(i*TWOPI/NUM))/n)))/n)) )

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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