正文:

大一蒟蒻,原来double,float只对部分小数四舍五入,
希望有大佬能够解释下

代码:

double:

不会四舍五入的小数

#include <bits/stdc++.h>

using namespace std;
int main()
{

   double x= 1.555;
   printf("%.2f\n",x);
	return 0;
}

会四舍五入:

#include <bits/stdc++.h>

using namespace std;
int main()
{

   double x= 0.555;
   printf("%.2f\n",x);
	return 0;
}

float:

#include <bits/stdc++.h>

using namespace std;
int main()
{

    float  x= 0.555;
    float y = 1.555;
    float z = 8.555;
    //会四舍五入
    printf("%.2f\n",x);
   //不会四舍五入
    printf("%.2f\n",y);
    //会四舍五入
    printf("%.2f\n",z);
	return 0;
}