我正在尝试将我的数据四舍五入到小数点后三位,但是它不能正常工作。
我写的代码是:

//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/

10-11 19:39