在 Fortran 90 中向下舍入整数以 0 或 5 结尾

Round down integer to end in 0 or 5 in Fortran 90

我在 Fortran 中有如下整数值:

120343
120344
120345
119349
118350
118355

我想将它们四舍五入,使最后一位数字始终为 0 或 5。所以上面的数字将变为:

120343 > 120340
120344 > 120340
120345 > 120345
119349 > 119345
118350 > 118350
118355 > 118355

我可以编写一个算法来解决这个问题,但我想知道是否有更直接的方法来使用现有的 Fortran 90 函数来实现这个问题。

我正在使用 gfortran (gcc8)。

从您的 table 预期输出来看,您似乎只想将数字四舍五入到最接近 n = 5 的倍数。在这种情况下,您可以使用公式

y = x - mod(x, n)

唯一更直接的方法是清除最低有效位,以防 n 是 2 的幂。