永发信息网

c语言abs会把小数部分去掉吗

答案:4  悬赏:20  手机版
解决时间 2021-04-02 08:08
c语言abs会把小数部分去掉吗
最佳答案
会的。
abs为C语言的库函数,位于stdlib.h,其格式为
int abs (int x);
功能为取x的绝对值并返回。
可以看到该函数参数和返回值是整型的,当传入浮点型参数时,会先被强制转换为整型,其表现为小数部分会被去掉。
要想保持小数部分,可以使用用于浮点数的绝对值函数fabs,用法与abs相同。
全部回答
这要看你用的编译器的帮助中对这个函数的数明. 因为这个函数不是 ANSI-C的函数.
例如: Borlandc 3.1中, abs的原型有 int abs(int x); 因此,如果在这个环境中用abs,就会先吧参数先转换成整数, 再求绝对值. 结果也是整数.
如果要对浮点数求绝对值, 可用fabs, 原型为: double fabs(double x);
有没有去掉小数部分不在你的abs方法,而在:
x=cos(a)*25; //往整数x中赋值时就已经去尾取整了
y=sin(a)*25; //往整数y中赋值时就已经去尾取整了
是否能取到圆上的每个点只在于半径的大小和取的角度增量
圆周上有 2*PI*R = 2.3.14159*25 = 157个点, 总共360度,每两度取一次也够把所有点取全的
是的,截断取整(实际是在实参传给形参时,将实数自动转换为了整数)。
abs函数用于对整数求绝对值,fabs函数用于对实数求绝对值。
以下程序的输出结果为3
#include
#include
main()
{
printf("%d\n",abs(-3.96));
}追问我现在是在写一个液晶显示的石英钟,(63,31)是圆心在液晶屛的中心位置,原点是屏幕最左上角
你帮我看看这段程序是否能取到一个圆上的每一个点
void clock(int a)
{
int x,y,dis_x,dis_y;
x=cos(a)*25;
y=sin(a)*25;
x=abs(x);
y=abs(y);
if(a>90&&a<270)
dis_x=63+x;
else
dis_x=63-x;
if(a>0&&a<180)
dis_y=31-y;
else
dis_y=31+y;
Lcd_12864_drawLine(63,31,dis_x,dis_y,1);
}追答楼下回答得有道理。
此外,由于sin函数和cos函数的参数单位为弧度(不是度),所以clock函数的参数a的类型应改为float或double。
if(a>90&&a<270)和 if(a>0&&a<180)中的度数,也应该化成弧度。
其实,可以不取绝对值。如下所示:
void clock(float a) /*a的单位为弧度*/
{
int x,y,dis_x,dis_y;
x=cos(a)*25;
y=sin(a)*25;
dis_x=63+x;
dis_y=31-y;
Lcd_12864_drawLine(63,31,dis_x,dis_y,1);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
酸水包菜怎么做
剑三侠义值唐门惊羽PVE装备用280的套装好还是
我打完瘦脸针9天了 白毒 然后打完头几天就感
Miss,小苍,小智,若风现在在哪直播?
烟机 灶具 十大品牌有哪些??
求极限 lim x趋向于-1 (x+1分之1-x的立方+1
东北最大的黑木耳批发市场在哪里
绝世武神里面时老是谁
发现2个人交警拦我鬼火三代电动车交警看我鬼
把4x^3-6x^2 1=0因式分解
现在买黄金好还是等到国庆也买好
温图高勒嘎查地址在什么地方,想过去办事,
我撞到别人车全责,维修费保险公司赔多少
点江山代表什么数字?
为什么银鱼野外抓回来不会活?
推荐资讯
查一下宿州涌桥区西寺坡镇天气预报
女方再婚,男方初婚
填一填.(1)每袋面粉重20千克,10袋重_____
杨颖孩子是不是自己生
昆明排名前十的初级中学有哪些?
有没有赚钱做完提现的单子
舱单和关单分别指什么,都是报关时需要用到的
如何注册linux input设备
乱情是什么意思?
2014冒险岛除了开商店和上拍卖行还能怎样卖出
古代鉴宝大会护阴之物主人公叫什么
手机或者电脑平板看电视直播算收视率吗???
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?