注意到一个现象,C++当中,用流输出cout无法将整数转换为浮点数,例如:
cout<<setprecision(2)<<6<<endl;
是无法输出结果6.0的
要采用
printf("%.1f",6);
才能达到如是效果。
整数乘1.0变为浮点数。
cout << setprecision(1) << setiosflags(ios::fixed)<< (double)6 << endl;
setprecision(2)功能是控制输出流显示浮点数的有效数字个数为2个数字, 但是数字个数小于2个数字不会在后面补0。
cout<<setprecision(2)<<6.78<<endl; 输出6.8
要在后面补0应该是
cout<<fixed<<setprecision(2)<<(double)6<<endl; 输出6.00
你先把整数转换成浮点数,输出格式是按类型来区分的
如果你把6改成6.666666,你就会看到效果了。
呃,你这样之所以还是输出6,是因为setprecision只对浮点数的输出有效,而6是int类型,匹配到的是输出int的重载运算符,所以无效。可以cout<<6.0这样
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!