c++ 如何限制计算浮点值的小数位数?

1dkrff03  于 2022-12-24  发布在  其他
关注(0)|答案(2)|浏览(150)

当我计算5/2时,结果是2.500000,所以我想知道如何将浮点值的结果限制为2.50,我没有使用cout setprecision()或fixed语句,因为我需要算术值的实际结果只有2位小数。

8i9zcol2

8i9zcol21#

如果您不想使用某些小数位,那么使用ceil()floor()round()如何?

qybjjes1

qybjjes12#

首先,2/5等于2,因为这样写会做整数除法,只有2.0f/5.0f会返回一个浮点数。
其次,std::setprecision所做的唯一一件事就是修改控制台上显示的位数,当您执行std::cout时,它不会更改变量或表达式的值。
如果你想四舍五入你的结果到小数点后一位,并且不使用标准函数,你可以这样做

float a = 3.1415;
float b = ((int)(a*10+0.5))/10.0       // b is a rounded to one decimal place

但是如果你把std::setprecision设置为5个小数位,它仍然会显示最后一个小数位之后的所有零。

相关问题