C语言取整问题

z15881328993 2009-10-22 10:30:43
4294967296*abs(sin(i))怎么取整数部分
要求能实现
...全文
330 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
weidong0210 2009-10-22
  • 打赏
  • 举报
回复
long int?
z15881328993 2009-10-22
  • 打赏
  • 举报
回复
你们算法都不对
我是先定义float f
f=sin(k);
if(f<0)
f=-f;
(UINT)(4294967295*f+f)来取整,但是这样跟结果又误差,数据丢失了
yyyapple 2009-10-22
  • 打赏
  • 举报
回复
两个问题怎么取整?数据类型够大吗?
xylicon 2009-10-22
  • 打赏
  • 举报
回复
int d = abs(4294967296*sin(i));
ithiker 2009-10-22
  • 打赏
  • 举报
回复
long int a;
a = 4294967296*abs(sin(i));

或是

a = (long int )4294967296*abs(sin(i));
飞花丝雨 2009-10-22
  • 打赏
  • 举报
回复
abs是C函数还是std模板,你想要的结果是什么,这个表达式语法上没问题
lnuyasha_hrb 2009-10-22
  • 打赏
  • 举报
回复
主要明确各个整型类型的取值范围,及取值误差问题就OK了
int类型的范围不够
应为long int

64,639

社区成员

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

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