printf限定位数输出时是4舍5入。
double->float,是不会4舍5入的,直接丢弃尾部的参数。
#include #include#includeusing namespace std;int main(){ printf("%lf\n",M_PI); printf("%.4lf\n",M_PI); printf("%.3lf\n",M_PI); return 0;}
除非数值超范围或者类型变了,不然不会出现四舍五入的
要看你是以哪种方式保留和具体的编译器。