我目前正在为大学开发一个四舍五入的代码,但是没有在c中使用数学库。
这就是我所做的:
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
double arrd(double x, int n);
int main()
{
double value;
int n;
printf("Insert a value: ")
scanf("%lf", &value);
printf("Insert n: ");
scanf("%d", &n)
printf ("%f", arrd( value, n));
return 0;
}
double arrd(double x, int n){
double r = x;
double s = 1;
int e = 0;
while (e != (n+1)){ /*This is to get to the last number before rounding*/
s= s * 10;
r = r*10 - int(r); /*This is where is giving me the error*/
e++;
};
r=r*10;
if (r<5){
return x-r*(1/s);
} else {
return x-r*(1/s)+(10/s);
}
}
它表示期望表达式,r = r * 10-int(r)。我该怎么办? 我是编程新手,但是如果我可以改进的其余代码有什么问题,请告诉我。
谢谢
答案 0 :(得分:2)
此
int(r)
将值强制转换为int
的语法无效。方法如下:
(int)r