我正在尝试将我的数据四舍五入到小数点后三位,但是它不能正常工作。
我写的代码是:
//Check and round up raw data
printf(" --- ROUNDED DATA ---\n");
for (rowIndex = 0; rowIndex < MAX_ROWS; rowIndex++)
{
// Read up until the last value
for (columnIndex = 0; columnIndex < MAX_COLUMNS; columnIndex++)
{
if (rawData[rowIndex][columnIndex] < rangeValue1)
printf("%.3f ", rangeValue1);
else if (rawData[rowIndex][columnIndex] > rangeValue2)
printf("%.3f ", rangeValue2);
else
printf("%.3f ", rawData[rowIndex][columnIndex]);
}
printf("\n");
}
rangeValue1是定义为0的变量,rangeValue2被定义为2.5。
我尝试了ceil函数,但问题是它将数字例如1.5555舍入为2.000。我想要的是将数字四舍五入到1.556。我在倒数第二句中将函数ceil放在rawData之前。
最佳答案
将小数点移至您要舍入的位置,进行舍入并将其移回。
ceil(value * 1000.0) / 1000.0
关于c - 在C编程中将数字四舍五入到小数点后三位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45771731/