当我使用g ++ 5.4.0 / dev C ++ 5.11编译和运行C ++代码时,答案是出乎意料的。有人可以帮帮我吗?
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
double b = 36.25;
printf("%.1f\n", b);
return 0;
}
运行结果为: 36.2 , 对于数字36.25的舍入,这不是 36.3 的首选结果。
帮助!谢谢!
答案 0 :(得分:1)
不,您的代码正常运行,这是规则。
嗯,圆形数字输出36.25也是36.2因为
在数字四舍五入时,如果第一个数字下降为5,则全部为 五个之后的数字为零或者没有数字 在5之后,如果那个,那么保留的最后一个数字应该保持不变 最后的数字是均匀的。例如,如果只保留一个小数, 然后6.6500变为6.6。
有关详细信息,请访问http://academic.brooklyn.cuny.edu/geology/leveson/core/linksa/roundoff.html
因此,结果也是36.2知道您是否更改了例如36.75的测试用例
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
double b = 36.75;
printf("%.1f\n", b);
return 0;
}
输出
36.8
现在,第二种情况是在5值不是等于零之后
#include <iostream>
#include <stdio.h>
#include <cmath>
using namespace std;
int main(){
double i=36.252;
printf("%.1f",i);
return 0;
}
正如预期的输出
36.3
我认为这个会对你有所帮助。