在 C 编程中将数字向上舍入到小数点后 3 位

  • 本文关键字:舍入 小数点 编程 数字 c
  • 更新时间 :
  • 英文 :


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

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

您可以简单地将浮点值乘以 1000 并ceil它,然后除以 1000 以获得您想要的值。

ceil(data * 1000.0) / 1000.0

最新更新