在 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 的幂。
我在 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 的幂。