早教吧作业答案频道 -->其他-->
C++的四舍五入cout.setf(ios::fixed);cout.precision(4);cout
题目详情
C++的四舍五入
cout.setf(ios::fixed);
cout.precision(4);
cout< 这时候的输出是:1.4900
double format1(double n){
double temp=n*1000;
if(int(temp)%10>=5)return n+0.01;
else return n;
}
cout.setf(ios::fixed);
cout.precision(4);
cout< 这个输出是1.5000
怎么来的我就不知道了
又测试另一数据:
cout.setf(ios::fixed);
cout.precision(2);
cout< 这个输出1.49
这什么情况?
cout.setf(ios::fixed);
cout.precision(4);
cout<
double format1(double n){
double temp=n*1000;
if(int(temp)%10>=5)return n+0.01;
else return n;
}
cout.setf(ios::fixed);
cout.precision(4);
cout<
怎么来的我就不知道了
又测试另一数据:
cout.setf(ios::fixed);
cout.precision(2);
cout<
这什么情况?
▼优质解答
答案和解析
在你format1函数里是根据千分位上实际数字来决定是不是要加0.1的
如果sqrt(result)的实际值是 1.48999, 显示4位小数就成了 1.4900, 但是经过format1函数的处理, 千分位是9所以format返回值是 1.49999 ,显示4位小数就成了1.5000
而你给format1函数一个1.4900就没有这个问题
其实format这个“四舍五入”的错误就在于, 你舍入之后还得把尾巴截掉才对, 比方说 1.5四舍五入之后是2而不是2.5, 你不能只是加上个1就完事
如果sqrt(result)的实际值是 1.48999, 显示4位小数就成了 1.4900, 但是经过format1函数的处理, 千分位是9所以format返回值是 1.49999 ,显示4位小数就成了1.5000
而你给format1函数一个1.4900就没有这个问题
其实format这个“四舍五入”的错误就在于, 你舍入之后还得把尾巴截掉才对, 比方说 1.5四舍五入之后是2而不是2.5, 你不能只是加上个1就完事
看了 C++的四舍五入cout.s...的网友还看了以下:
英语翻译如是我闻,一时,佛在舍卫国祗树给孤独园,与大比丘众千二百五十人俱.尔时,世尊食时,著衣持钵 2020-04-26 …
#include iostream.h int main() { bool flag; flag= 2020-05-14 …
求解文言文字词意思!风雨不动安如山安:()便舍船,从口入舍:()屋舍俨然舍:()至舍,四支僵劲不能 2020-05-22 …
C++的四舍五入cout.setf(ios::fixed);cout.precision(4);c 2020-06-27 …
如是我闻:一时,佛在舍卫国祇树给孤独园,与大比丘众千二百五十人俱。尔时,世尊食时,著衣持钵,入舍卫 2020-07-05 …
解释下列划线的词语。(1)玉容寂寞泪阑干。(《长恨歌》)()(2)这次第,怎一个愁字了得。(《声声 2020-07-05 …
ifstream的用法#include<fstream.h>#include<iostream.h 2020-07-23 …
《金刚经》中这句怎么断句:尔时世尊食时著衣持钵入舍卫大城乞食于其城中次第乞已还至本处。 2020-07-29 …
分类.斗志昂扬耀武扬威神机妙算好高鹜远气势汹汹阳奉阴违和颜悦色阴谋诡计坚强不屈锲而不舍无孔不入舍己为 2020-11-08 …
下列各组中,画线词意思相同的两项是[]A、有仙则名/并自为其名B、高可二黍许/珠可历历数也C、便舍船 2021-01-19 …