同样,
AC = sqrt((AB*AB)+(BC*BC));
BD = sqrt((BC*BC)+(CD*CD));
(所有变量都是双重类型)
这里,我希望AC和BD的值固定为小数点后的2位数,然后我想添加AC和BD。现在,如果我(小数点后3位)AC = 4.564和BD = 4.789,添加后的结果是9.351。再次,如果我采取(小数点后2位数)AC = 4.56和BD = 78,那么添加它们后的结果是9.34。现在,如果我打印两个小数点后固定为2位数的结果,则分别显示9.35和9.34。但我希望得到9.34。
答案 0 :(得分:0)
准确度的两位小数:
但是如果你碰巧得到一个整数值,你就不会在小数点后面有#2; 2位数"
答案 1 :(得分:-1)
如果您尝试在小数点后输出2位数的双精度值,则将修饰符用于如下所示的流:
std::cout << std::setprecision (2) << std::fixed << AC;
这将输出具有2位精度的浮点数的定点表示。
此外,您应该查看圆形,细胞和地板功能,并按如下方式使用它们:
ans = round(AC * 100.0)/ 100.0
做你想做的事。您将发现您不能将所有数字表示为小数点后的两位数,因此您进行的任何比较都应该测试目标答案的接近程度+/-小目标值的epsil。
如果您尝试使用为财务计算计算的值,则使用double类型非常危险,因为某些值无法使用有限数量的精度位来精确表示。使用float / double类型执行财务计算时,您将遇到累积错误。