为什么 pow(10,2) 强转成int 后 值会变成99?
答案:3 悬赏:30 手机版
解决时间 2021-04-05 14:54
- 提问者网友:你给我的爱
- 2021-04-05 10:30
为什么 pow(10,2) 强转成int 后 值会变成99?
最佳答案
- 五星知识达人网友:青灯有味
- 2021-04-05 11:21
因为pow返回的是double类型,即浮点数,浮点数本身就是表示一个精度的数字,而不是一个准确的数字。
可能为99.999999
然后转换int所以成为99,
浮点数转换为int是可能丢失精度的。
所以浮点数不比较相等,只认为两个数字差距小到一定精度就认为相等。
可能为99.999999
然后转换int所以成为99,
浮点数转换为int是可能丢失精度的。
所以浮点数不比较相等,只认为两个数字差距小到一定精度就认为相等。
全部回答
- 1楼网友:有你哪都是故乡
- 2021-04-05 13:52
是你所用的编程系统的个体行为,不是普遍现象,应该是在转换的过程中丢失精度造成的.
- 2楼网友:西风乍起
- 2021-04-05 12:29
应该是100,运行如下程序得到结果为100;
#include
#include
void main()
{
printf("%d",(int)pow(10,2));
getch();
}
#include
#include
void main()
{
printf("%d",(int)pow(10,2));
getch();
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯