2.编译问题
动态链接库加载错误版本
在程序test.cpp中,mian函数使用了动态链接库libiscore.so中的函数avg_score,如下:
float avg_score(int s){
return (float)s / 12;
}
int main(){
int sum = 4000;
float average = avg_score(sum);
cout<<"score per morth:"<<average<<endl;
return 0;
}
test.cpp编译没有问题,但执行结果为3333.333,而预期结果希望输出保留两位小数,与期望值不符。
float avg_score(int s){
int tmp = (int)(((float)s /12)*100);
return (float)tmp / 100;
}
int main(){
int sum = 4000;
float average = avg_score(sum);
cout<<"score per morth:"<<average<<endl;
return 0;
}
本文探讨了一个关于动态链接库加载错误版本的问题,通过修改avg_score函数的实现,确保了输出结果符合预期,保留了两位小数。原始代码在调用动态链接库中的avg_score函数时,由于浮点数运算精度问题,导致输出结果不准确。
11万+

被折叠的 条评论
为什么被折叠?



