我有一个舍入函数,
float myround(float x, int places)
{
float const shift = powf(10.0f, places);
x *= shift;
x = floorf(x + 0.5f);
x /= shift;
return x;
}
当我尝试将数字四舍五入到小数点后 4 位,然后打印数字时
printf("%f ", x);
我得到的数字没有四舍五入。如果我打印它
printf("%.4f ", x);
我将数字四舍五入到 4 位。第一个 printf 是否应该不将数字打印到小数点后 4 位,因为我已经四舍五入了数字?
谢谢。
最佳答案
你不能舍入 float ,你只能将它们打印到特定的精度。所有 float 始终是“未四舍五入”的,尽管您显然可以更改该值以更接近四舍五入的数量。
关于c - 四舍五入后打印 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16659021/