见下面这两份代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
double n;scanf("%lf",&n);
printf("%.12lf\n",n*(n+1)/(2*(2*n-1)));
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){
long double n;scanf("%lf",&n);
printf("%.12lf\n",n*(n+1)/(2*(2*n-1)));
return 0;
}
这两份代码在输入 1 时会分别得到 1.000000000000 和 0.000000000000,请问这是为什么?