当我计算5/2时,结果是2.500000,所以我想知道如何将浮点值的结果限制为2.50,我没有使用cout setprecision()或fixed语句,因为我需要算术值的实际结果只有2位小数。
8i9zcol21#
如果您不想使用某些小数位,那么使用ceil()、floor()、round()如何?
ceil()
floor()
round()
qybjjes12#
首先,2/5等于2,因为这样写会做整数除法,只有2.0f/5.0f会返回一个浮点数。其次,std::setprecision所做的唯一一件事就是修改控制台上显示的位数,当您执行std::cout时,它不会更改变量或表达式的值。如果你想四舍五入你的结果到小数点后一位,并且不使用标准函数,你可以这样做
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个小数位,它仍然会显示最后一个小数位之后的所有零。
2条答案
按热度按时间8i9zcol21#
如果您不想使用某些小数位,那么使用
ceil()
、floor()
、round()
如何?qybjjes12#
首先,2/5等于2,因为这样写会做整数除法,只有
2.0f/5.0f
会返回一个浮点数。其次,
std::setprecision
所做的唯一一件事就是修改控制台上显示的位数,当您执行std::cout
时,它不会更改变量或表达式的值。如果你想四舍五入你的结果到小数点后一位,并且不使用标准函数,你可以这样做
但是如果你把
std::setprecision
设置为5个小数位,它仍然会显示最后一个小数位之后的所有零。